发动态

没有新消息

更多内容

行先生 业务负责人
#C++工程师#【C++工程师常见的面试题总结】 转自网络 作者 自由如风呼呼呼 1.在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的混合编程。

1603阅读

5赞

评论

0 条评论

北京/中国青年政治学院
2.头文件中的ifndef/define/endif有什么作用? 答:这是C++预编译头文件保护符,保证即使文件被多次包含,头文件也只定义一次。 3. #include<file.h> 与 #include "file.h"的区别? 答:前者是从标准库路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 4.评价一下C/C++各自的特点 答:C语言是一种结构化语言,面向过程,基于算法和数据结构,所考虑的是如何通过一个过程或者函数从输入得到输出; C++是面向对象,基于类、对象和继承,所考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题,通过获取对象的状态信息得到输出或实现过程控制。
20-09-16
赞0
回复

推荐阅读

谁有C语言,C++方向的工作,帮忙给介绍一个呗

2092阅读
0赞
0评论

Java语言和C语言都属于高级语言,其语法和规则有相同之处,但也有很大的不同,Java是面向对象的语言,C语言是函数式语言,Java是编译兼解释性语言,C语言是编译性语言,关于语言的特性后面会有陆续介绍。

2930阅读
3赞
0评论

有关于编程的工作可以找我,会一些c/c++

640阅读
1赞
0评论

Java和C++都是面向对象的语言。也就是说,它们都采用面向对象的思想(封装、继承、多态)。由于C++为了兼顾大量的C语言使用者,所以兼容了C,使得自身仅仅成为了带有类的C语言,多多少少影响了其面向对象的彻底性;Java则是完全的面向对象的语言,它句法更清晰,规模更小,更易学。它在对多种程序设计语言进行深入细致研究的基础上,摒弃了其他语言的不足之处,从根本上解决了C++的固有缺陷。Java语言是从C++发展而来的,所以C++与Java之间存在许多联系但又有很大的区别。

8441阅读
3赞
0评论

找女朋友~C/C++程序员

3300阅读
5赞
2评论

老板是技术大佬,想学c或者c++可以去。

1438阅读
2赞
0评论

#程序员福大大#55.下面关于 C 语言程序的描述,正确的是 (55) 。 A.总是从第一个定义的函数开始执行 B.要调用的函数必须在 main()函数中定义 C.总是从 main()函数开始执行 D.main()函数必须放在程序的开始

818阅读
16赞
8评论

诚聘C++软件工程师

1927阅读
2赞
0评论

#招商银行面试经验#【正在等待招银结果,分下一下C++面试题】 前天面试了招银网络C++工程师的岗位,目前还在等待面试结果,给大家分享一下面试题,攒攒人品。 1.指定一个string类,写出重载+=符号的函数,函数自己定义。 class my_string{ public: int *ptr; int size; int capacity; } 2、如果C++里出现了重复头文件,要如解决,怎么实现? 3、你写代码会不会用到extern "C"?用到的原因是什么? 4、详细讲讲信号量、互斥锁、自旋锁和临界区; 5、详细讲讲互斥锁和自旋锁的优缺点; 6、详细讲讲深拷贝和浅拷贝的定义,你是怎么实现深拷贝一个类的?在类里面应该要写哪些函数? 大概内容就是以上部分,欢迎一起来讨论。

6765阅读
7赞
0评论