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();