使用extern在C或C++中包含文件

Sac*_*iya 1 c c++ include extern

这在C或C++中是如何工作的?

extern "C" {
#include <unistd.h>
#include <fd_config.h>
#include <ut_trace.h>
#include <sys/stat.h>
#include <sys/types.h>
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*tes 5

C++标准没有规定编译器应如何命名其目标文件中的符号(例如,Foo::bar()最终可能是__clsFoo_fncBar某些gobbledygook).C标准确实如此,它几乎总是与C++编译器的不同(C不必处理类,名称空间,重载等).

因此,当您链接到C编译器输出的目标文件时,您必须告诉C++编译器查找名称与C标准对应的符号.你基本上把它放在"C模式".这就是其中的"C"一部分extern "C".

(或者,您也可能声明可以由外部C对象文件使用的函数或变量.在这种情况下,它意味着以C方式导出这些符号.)