应该extern在头文件中进行功能吗?或者他们extern是默认的?
例如,我应该这样写:
// birthdays.h
struct person find_birthday(const char* name);
Run Code Online (Sandbox Code Playgroud)
或这个:
// birthdays.h
extern struct person find_birthday(const char* name);
Run Code Online (Sandbox Code Playgroud)
tur*_*1ng 15
它们被隐含地声明为"extern".
Jon*_*ler 13
标题中声明的函数通常是(除非你真的很努力)extern.就个人而言,我更喜欢在那里看到显式关键字 - 但编译器不需要它.它提醒读者他们是extern,并且由于人类比计算机更容易犯错,我发现提醒有帮助.
对于变量,extern在头文件中使用关键字(并且没有初始化程序)很重要.因此,对于在头文件中声明的(极少数)全局变量的对称性,我也使用extern函数 - 即使它是严格不必要的.