在声明函数时(几乎)根本不需要使用关键字extern
,无论是用C还是C++.在C和C++中,默认情况下所有函数都有外部链接.在头文件中使用extern
声明函数的奇怪习惯可能有一些历史根源,但几十年来它已经完全无关紧要了.
有一个[晦涩的?]在C语言(C99)中,如果在某个翻译单元中,一个函数被定义为inline
,也被声明为extern
(使用了显式extern
),那么该函数的内联定义也可以作为an external definition.如果翻译单元中没有显式extern
的声明,则内联定义仅用作"内部"定义.
附注:在C++中有extern "C"
这样的东西,但那是完全不同的事情.