c++ - C 与 C++ 中的外部函数

标签 c++ c

C库的*.h头文件中,应该声明函数

extern void f();

// or only 

void f();
  1. 仅在 C
  2. 中使用时
  3. 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/

相关文章:

c++ - 我是否需要针对不同的指令集制作多个可执行文件?

c++ - QRect 上的 Qt 正则表达式

c - 使用可变参数使用 va_arg 进行类型转换时出错

c - 在 C 中的嵌套循环中使用 strtok() 吗?

c++:在另一个类的函数中返回对象

c++ - 创建一个 1 像素的纹理问题。

c++ - 在 doxygen 注释中展开宏以打印出软件版本

c - 仅输入数字 C 编程

c - 在同一个套接字上并行调用发送/接收是否有效?

c - ISR 与主要 : what are the trade offs of running in one or the other?