在c++程序中调用被c编译器编译后的函数为什么要加extern “C”
2015-06-13 11:51
281 查看
c语言不允许函数重载,一次不涉及到同名函数参数类型不同的重载问题,而c++允许函数重载,编译器在编译函数时,c只需要记录函数的名称即可而c++不仅需要记录函数名称还需要记录函数的参数类型。
例如:
c编译器编译的结果函数名称应该是类似_foo这样的名称,而c++则应该是类似于_foo_int_int这样的名称。
为了解决c和c++编译器的互通问题,c++提供了c连接交换指定符号extern “C”解决名字匹配的问题。
例如:
int foo(int ,int );
c编译器编译的结果函数名称应该是类似_foo这样的名称,而c++则应该是类似于_foo_int_int这样的名称。
为了解决c和c++编译器的互通问题,c++提供了c连接交换指定符号extern “C”解决名字匹配的问题。
相关文章推荐
- 《C/C++工程师综合练习卷》
- 《C/C++工程师综合练习卷》
- c++的运算符及其优先级
- bit-map简介及其C/C++代码实现
- C++STL中vector容器的用法
- NYOJ 58 最少步数(DFS)
- 一起talk C栗子吧(第十三回:C语言实例--单链表二)
- NYOJ 58 最少步数(BFS)
- xcorr 自相关 c++实现
- C++ delete失败
- 指针和数组——高质量C、C++编程指南
- C++第11章,使用类
- C风格字符串 C++string对象 字符串常量 字符串直接量
- C++在VS2008的IDE环境中操作Excel2007(基础)
- c语言常见错误与注意点
- C语言中的单引号和双引号含义
- C++ Primer学习3:枚举类型
- log4Cpp学习(本文转载)
- c语言从文件中读入格式化数据并存入sqlite3
- C++常成员函数 - const 关键字