inline不成反蚀一小时

$ cat a.cpp
#include <string>
#include <iostream>
using namespace std;
inline void fn() {
  string  s = "aaa\n";
  cout << s;
}
void bbb();
int main() { fn(); bbb(); }

$ cat b.cpp
#include <string>
#include <iostream>
using namespace std;
inline void fn() {
  string  s = "bbb\n";
  cout << s;
}
void bbb() { fn(); }

$ g++ -Wall a.cpp b.cpp
$ a.out
aaa
aaa

在b.cpp中把inline去掉,结果是bbb bbb

a.cpp中也去掉inline:结果是:multiple definition of `fn()'

某个fn static或都static,应该,而且确实,aaa, bbb

还有这个:printf("%d %d\n"), $1.size(), $3.size();

posted @ 2023-01-04 15:58  Fun_with_Words  阅读(18)  评论(0编辑  收藏  举报









 张牌。