找工作C面试资料之问答题.docx

找工作 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

文档评论(0)

1亿VIP精品文档

相关文档