如何理解c语言中extern "C"的作用

 时间:2024-11-02 12:09:17

1、c语言代码和c++语言编写的代码之间可以相互调用,而extern "C"的用法就在于使c++代码中能访问c语言代码。这就是它的根本作用。为了后面讲解,我们定义了c++的main函数,并且调用一个Add方法。

如何理解c语言中extern 如何理解c语言中extern 如何理解c语言中extern

2、如果都使用g++编译器,程序编译是没问题的。当我们使用gcc编译Add方法后,在用g++编译整个程序,发现编译报错,找不到Add方法。

如何理解c语言中extern

3、为什么编译c++程序,并使用gcc编译后的c语言目标文件,会报错找不到对应的方法呢?我们分别用gcc和g++编译add文件,并通过strings查看add方法,发现add方法符号并不相同。如下图所示。

如何理解c语言中extern

4、因为在c++中函数可以重载,所以不能完全通过函数名找到对应的函数。所以,在编译main函数时,报错找不到对应的add方法。这时就需要使用extern "C"声明c语言函数。第一种方式:直接在cpp文件中,引用c语言头文件时加上extern "C"声明,如下所示:

如何理解c语言中extern

5、第二种方式,在编写c语言代码时,我们主动提供extern "C"声明,表明我们代码可支持c++语言调用。

如何理解c语言中extern

6、在c语言中添加extern "C"声明时,我们需要加上宏定义_cplusplus的判断。这个宏的作用时,如果使用gcc编译器编译代码则忽略该定义;如果使用g++编译器编译则包含extern "C"声明。我们看下如果不添加该宏定义时,使用gcc编译将报错,如下图所示:

如何理解c语言中extern
  • 什么是力的作用效果
  • 疯狂的科学狂人 LOL炸弹人中单攻略
  • 手机QQ关闭“新消息通知”的操作方法
  • 黑莓小说怎么查看小说目录
  • 女方结婚房间怎么布置
  • 热门搜索
    旅游服务礼仪 福建平潭岛旅游攻略 青岛旅游景点介绍 永定土楼旅游攻略 香港旅游景点介绍 香港长洲岛旅游攻略 张家界旅游必去景点 成都市区旅游景点大全 黄山风景区旅游攻略 彭州旅游