设为首页 加入收藏

TOP

5.7 C和C++的关系
2013-10-07 14:09:13 来源: 作者: 【 】 浏览:60
Tags:5.7 关系

5.7  C和C++(www.cppentry.com)的关系

面试例题1:在C++(www.cppentry.com)程序中调用被C编译器编译后的函数,为什么要加extern "C"?

答案:C++(www.cppentry.com)语言支持函数重载,C语言不支持函数重载。函数被C++(www.cppentry.com)编译后在库中的名字与C语言的不同。假设某个函数的原型为void foo(int x, int y)。该函数被C编译器编译后在库中的名字为_foo,而C++(www.cppentry.com)编译器则会产生像_foo_int_int之类的名字。

C++(www.cppentry.com)提供了C连接交换指定符号extern "C"解决名字匹配问题。

面试例题2:头文件中的ifndef/define/endif是干什么用的?

答案:防止该头文件被重复引用。

面试例题3:评价一下C与C++(www.cppentry.com)的各自特点。如果一个程序既需要大量运算,又要有一个好的用户界面,还需要与其他软件大量交流,应该怎样选择合适的语言?

答案:C是一种结构化语言,重点在于算法和数据结构。C程序的设计首先考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。而对于C++(www.cppentry.com),首先考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

对于大规模数值运算,C/C++(www.cppentry.com)和Java/.NET之间没有明显的性能差异。不过,如果运算设计向量计算、矩阵运算,可以使用FORTRAN或者MATLAB编写计算组件(如COM)。

大规模用户界面相关的软件可以考虑使用.NET进行开发(Windows环境下),而且.NET同COM之间的互操作十分容易,同时.NET对数据库访问的支持也相当好。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇6.2 const 下一篇6.4 内联函数和宏定义

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: