在C
库的*.h
头文件中,应该声明函数
extern void f();
// or only
void f();
- 仅在
C
中使用时
- 从
C++
使用时。
最佳答案
在用 C 或 C++ 声明函数时,[几乎] 永远不需要使用关键字 extern
。在 C 和 C++ 中,默认情况下所有函数都具有外部链接。在头文件中用 extern
声明函数的奇怪习惯可能有一些历史根源,但几十年来它已经完全无关紧要了。
上面的 C 中有一个 [obscure?] 异常,这可能与您要问的问题没有直接关系:在 C 语言 (C99) 中,如果在某些翻译单元中,函数被定义为 inline
并且还声明为 extern
(使用显式 extern
),则该函数的内联定义也用作 外部定义。如果翻译单元中没有显式 extern
的声明,则内联定义仅用作“内部”定义。
附: C++中有extern "C"
这样的东西,但那是完全不同的事情。
关于c++ - C 与 C++ 中的外部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712707/