C++中extern“C”含义深层探索

C++中extern“C”含义深层探索,第1张

C++中extern“C”含义深层探索,第2张

介绍

C++语言的本意是“一个更好的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 _ _ INCVxWorkshop,# define _ _ INCVxWorkshop,#endif”的作用是为了防止头文件被重复引用。

因此

# ifdef _ _ cplusplus
extern " C " {
# endif
# ifdef _ _ cplusplus
}
# endif

的作用是什么?下面我们一起来。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++中extern“C”含义深层探索

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情