extern ‘C’

来源:互联网 发布:淘宝虚拟充值货源 编辑:程序博客网 时间:2024/05/19 21:44

在C++出现之前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好地支持原来的C代码和已经写好的C语言库,需要在C++中尽可能的支持C。

extern 'c'的主要作用是为了能够正确实现C++代码调用C语言代码。加上extern‘C’后,会指示编译器这部分代码按C语言的进行编译,而不是C++的,由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型加到编译后的代码中,而不仅仅是函数名,而C语言不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。


这个功能主要用在下面的情况:

1、C++代码调用C语言代码

2、在C++的头文件中使用

3、在多个人协同开发时,可能有的人比较擅长C,而有的人擅长C++,这样的情况下也会有用到。


C与C++的区别:

C与C++最大的区别在于解决问题的思想方法不一样。

  1. C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)
  2. C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。


面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后再使用的时候一一调用即可。它的重点是算法和数据结构。


面向过程是把问题分解成若干步骤,每个步骤实现一个函数,一步步实现,然后在使用的时候,把数据传递给这些函数,计算得出结果。面向对象是首先抽象出各种对象,把数据和解决问题的方法封装在对象中,然后各个对象之间通过行为发生作用。


C++是面向对象  C++面向对象的三大特征包括数据的封装、继承和多态,此外,C++还引进了函数的重载。C++并非完全面向对象化,真正的面向对象化的语言恐怕只有java才算得上。


面向对象是把构成问题的事务分解成各个对象,而建立对象的目的不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。


在面向对象的世界里,用类一个个的构造出对象来,在主程序里调用的是一个个对象的行为。


C语言是一种介于汇编语言与高级语言之间的一种开发语言,也称为中级语言,因此效率高,适合于底层开发。而C++语言则用于比C语言更高层的应用开发。

C是C++的一个子集,C++是对C的增强,表现在以下几个方面:

1)类型检查更为严格。

2)增加了异常处理。

3)增加了运算符和函数重载。

4)增加了标准模板库(STL)。

5)增加了引用概念。



0 0