extern "C"的功能和用法研究

                                         

上述代码段中:__cplusplus是一个C++规范规定的预定义宏;现代C++编译器都预先定义了它,而所有的C语言编译器则不会;

【注】:按照规范__cplusplus的值应该等于199711L,然而并不是所有的编译器都照此规范,比如g++编译器下__cplusplus的值为1。

上述代码段,如果再C编译器下,内容等价如下:

因为C语言编译器没有定义_cplusplus;

                                          

 

1. extern "C"功能:为了能够正确的在C++代码中调用C语言的代码;

在程序中加上extern "C"后,相当于告诉编译器这部分代码是C语言写的,因此要按照C语言进行编译,而不是C++;

2. 哪些情况下使用extern "C":

(1)C++代码中调用C语言代码;

(2)在C++中的头文件中使用;

(3)在多个人协同开发时,可能有人擅长C语言,而有人擅长C++;

3. C++语言允许函数重载;但C语言是一门单一名字空间的语言,不允许函数重载;

为了能在C++程序里调用C语言程序,C++引入了链接规范,格式:extern "language string";

如下,在C++程序中调用C程序:

                                 

参考文章:

1. 非常详细 https://www.cnblogs.com/TenosDoIt/p/3163621.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值