C与C++的兼容性问题
请问,C代码在二进制级别上是否是兼容的?也就是说不同的C编译器产生的目标代码是否是可以互相调用的?C++呢是否是兼容的?
还有在C中调用二进制级别的C++代码为什么不行?
望请各位大侠赐教。
[解决办法]
如果真的对这个话题很感兴趣,想深入了解,就去找 <C++代码设计与重用>
不同的C编译器产生的目标代码格式都可能完全不同,当然也谈不上互相调用了。
C++则连统一的对象模型都没有,更谈不上了。
C/C++混合编程,要在C++代码里为导出函数加extern "C ".
[解决办法]
向下兼容,不是向上兼容 ...
不是C兼容C++,
是C++兼容C,
所以你无法在C编译环境中调试C++,
但是反过来可以操作 ...
[解决办法]
做成库的话, 原则上别的编程语言都可以调用
你extern C 编译C++程序
[解决办法]
二进制很难兼容,代码级别上基本兼容。
[解决办法]
dev c++在windows下是很好的编译器,可以同时编译C和C++
或者装一个cygwin之后用其中的gcc编译器
[解决办法]
C++兼容C
但C不兼容C++ 要使用C++ 的函数,还必须使用extern "C "
[解决办法]
C++相对C来说是新人,当然开发C++要兼容C了,
可C本来没想那么多,它如果再兼容C++的话,岂不是C==C++.
所以在C++编译器里编C是可以的,但多少有些不同
C编译器编C++就不行了.
[解决办法]
请问,C代码在二进制级别上是否是兼容的?也就是说不同的C编译器产生的目标代码是否是可以互相调用的?C++呢是否是兼容的? //不兼容
还有在C中调用二进制级别的C++代码为什么不行? //你指的是什么,DLL COM 调用可以,平台不兼容
望请各位大侠赐教。