"C"

extern "C"的用法解析

你离开我真会死。 提交于 2019-11-29 13:26:44
extern "C" 的用法解析 http://blog.sina.com.cn/u/494a1ebc010004g5 C++ 中 extern “C” 含义深层探索 1. 引言 C++ 语言的创建初衷是 “a better C” ,但是这并不意味着 C++ 中类似 C 语言的全局变量和函数所采用的编译和连接方式与 C 语言完全相同。作为一种欲与 C 兼容的语言, C++ 保留了一部分过程式语言的特点(被世人称为 “ 不彻底地面向对象 ” ),因而它可以定义不属于任何类的全局变量和函数。但是, C++ 毕竟是一种面向对象的程序设计语言 ,为了支持函数的重载, C++ 对全局函数的处理方式与 C 有明显的不同。 2. 从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似以下的结构? #ifndef __INCvxWorksh #define __INCvxWorksh #ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __cplusplus } #endif #endif /* __INCvxWorksh */ 分析 显然,头文件中的编译宏 “#ifndef __INCvxWorksh 、 #define __INCvxWorksh 、 #endif” 的作用是防止该头文件被重复引用。 那么