*.c与*.cpp的一点区别
来源:互联网 发布:手机屏幕录制视频软件 编辑:程序博客网 时间:2024/05/21 10:37
装载自http://lindahzh.blog.163.com/blog/static/129890134200991145756650/
在编译源文件时,C编译器和C++编译器都会对符号(函数或变量)名作某些修正,但两者采用的修正方法不同,所以两者生成的目标文件不能互相链接。在C++中使用extern "C"可以让C++符号获得C链接特性。由于C++编译器会自动定义__cplusplus宏,所以在C语言头文件中采用这种结构可以保证无论使用何种编译器,生成的目标文件都具有C链接特性,能够与标准C编译器所生成的目标文件相链接。
通常c/c++编译器会根据文件后缀来选择符号修正,所以最好把c的代码放到.c文件中,把c++的代码放到.cpp文件中。
我用VC++6.0创建动态库,做了以下试验。
在test.cpp中输出c函数,如下:
1、新建Win32 Dynamic-Link Library
2、输出函数
extern "C" _declspec(dllexport) void far test();
void far test()
{
}
而在test.c中输出c函数,就可以这样,如下:
1、新建Win32 Dynamic-Link Library
2、输出函数
_declspec(dllexport) void far test();
void far test()
{
}
看来.c和.cpp还是有很大区别的
0 0
- *.c与*.cpp的一点区别
- .C与.CPP的区别
- C与CPP文件的区别
- C与CPP文件的区别
- [C/CPP][2012-06-16]new 与 malloc 的区别
- .C与.CPP 在编译时的区别
- cpp和c的区别
- .c和.cpp 的 区别
- .c和.cpp的区别
- .c与.cpp的应用
- .cpp 与 .c 的区别 以及 extern "C" 的用法 LNK2001: 无法解析的外部符号
- .C文件和.CPP文件的区别
- .c和.cpp文件的区别
- CPP与C的不同与同
- C与CPP的同与不同
- C与CPP后缀的文件在编译时的区别
- .c .cpp区别
- .h和.cpp的用法与区别
- 设两个二维数组,分别用两种方式进行初始化,并分别按照行优先(1>.先输出第一行所有值,再输出第二行)、列优先(先输出第一列的所有值,再输出第二列)的次序输出。
- Lesson_for_java_day08--面向对象、重载和构造函数、this关键字的使用以及八大类在全局变量初始化中的值
- 堆和栈的区别 (转贴)
- 二维数组的申请和调用问题
- 讲一个数按照每一“位”取出来如:64输出为01000000
- *.c与*.cpp的一点区别
- 主动从spring获取对象的方法,并且在调用该方法的时候不用强制转换类型
- 第6周作业2-成绩判断
- 质粒绘制系统
- kickstart 建 LVM的方法
- [Unity3D] [Shader] 实现基于NDC的Sprite渐隐Shader
- openstack命令备忘录
- 如何测试静音检测
- 位运算的一些用途