关于C++调用C函数或变量的问题
2015-11-03 17:19
357 查看
比如:
void foo(int x, int y);
该函数被C编译器编译后在库中的名字为_foo,而 C++编译器则会产生像_foo_int_int
之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能
直接调用C函数。 C++提供了一个C连接交换指定符号 extern“C”来解决这个问题。例
如:
extern “C”
{
void foo(int x, int y);
… // 其它函数
}
或者写成
extern “C”
{
#include “myheader.h”
… // 其它 C头文件
}
这就告诉C++编译译器,函数 foo是个 C 连接,应该到库中找名字_foo而不是找
_foo_int_int。C++编译器开发商已经对C 标准库的头文件作了 extern“C”处理,所以
我们可以用#include 直接引用这些头文件
相关文章推荐
- 【C/C++学习笔记】判断一个点是否在多边形内部的例子
- VC++中CTime类的使用
- c++读写文件流
- C语言文件与目录(二)
- C、C++缓冲区的刷新
- C_C++变量命名规则
- C++ primer 学习笔记——字符串
- 字节对齐
- C++标准转换运算符reinterpret_cast
- C++单元测试一:并非看上去那么简单——几个很实际的问题
- 使用C++复制文件
- cppunit使用详解
- 在使用cppunit,搭建测试环境时遇到的问题以及解决办法(仅供参考)
- C++设计模式[二]单例模式
- 算法学习笔记
- Effective C++读书笔记-----术语
- 黑马程序员-------C语言回顾-整型变量修饰符和一维数组
- 日志库EasyLogging++学习系列(10)—— 日志文件滚动
- C语言和设计模式(策略模式)
- 第一次写程序