我很好奇链接过程中会发生什么,而且,在我在这个领域的研究中,我已经刺穿了这段代码
#ifdef __cplusplus
extern “C” {
#endif
extern double reciprocal (int i);
#ifdef __cplusplus
}
#endif
该代码位于某个头文件中,该头文件由一个程序的 .c 和 .cpp 源文件包含。它是一个函数的声明,然后在 .cpp 文件中定义。为什么它有效?我的意思是,在 .cpp 文件的编译过程中,这将变成
extern "C" {
extern double reciprocal (int i);
}
外部 extern 既使函数在全局范围内可见,又将 C++ 风格的函数名转换为 C 风格。但也有内在的外在。函数被externed两次可以吗?