找工作 C++面试资料之问答题整理
在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? 答:首先,extern 是 C/C++语言中表明函数和全局变量作用范围的关键字, 该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。 通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字 extern 声明。extern C是连接申明(linkage declaration),被 extern C
修饰的变量和函数是按照 C 语言方式编译和连接的。作为一种面向对象的语言, C++支持函数重载,而过程式语言 C 则不支持。函数被 C++编译后在符号库中的名字与 C 语言的不同。例如,假设某个函数的原型为:void foo( int x, int
y );该函数被 C 编译器编译后在符号库中的名字为_foo,而 C++编译器则会产
生像_foo_int_int 之类的名字。这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。
所以,可以用一句话概括 extern “C”这个声明的真实目的:解决名字匹配问题,实现 C++与 C 的混合编程。
头文件中的 ifndef/define/endif 有什么作用?
答:这是 C++预编译头文件保护符,保证即使文件被多次包含,头文件也只定义一次。
#inc
您可能关注的文档
最近下载
- 中成药的合理使用原则.pptx VIP
- 2.3.3 点到直线的距离公式 2.3.4 两条平行线间距离- 高二数学新教材配套学案(人教A版选择性必修第一册).docx VIP
- 历代医书大全.doc VIP
- (人教版)高中化学必修第一册 课后素养评价6.docx VIP
- 《人形机器人与具身智能标准体系(2026版)》全解析.pptx VIP
- 金融科技学 李建军PPT完整全套教学课件.pptx
- 苏S01-2021 给水排水图集(高清无水印)建筑图集.docx VIP
- 2020年电力建设工程装置性材料综合信息价.pdf VIP
- 高考物理二轮复习系列课件 光学.ppt VIP
- 2026年全国高考数学二卷真题含答案.pdf VIP
原创力文档

文档评论(0)