0%

inline meaning difference between C and C++

看了知乎這篇
之後才知道inline博大精深

先看程式碼

1
2
3
4
5
inline void f(void) { }
int main()
{
f();
}

用g++編譯這段程式,不管下-O2或是-O0都編譯的過
而如果用gcc編譯的話,-O0會出現unrefernce error,但如果下-std=gnu89又沒問題

根據知乎上面寫的,正確的修復方式應該為

1
extern void f(void) {}

C++跟C99之後,語意分歧點越來越多啊