C++是否完全兼容C?

想用C++的序列化方案,但是其他的模块都是C写的,不知道这样是否可行?
我知道C++是兼容C的,我的想法是用C的方式来写C++代码,不知道这样会不会有什么问题?

C++可以兼容大部分C语言编程。

C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。

C语言是C++的基础,C++和C语言在很多方面是兼容的。

C++一般被认为是C的超集合(Superset),但这并不严谨。大部分的C代码可以很轻易的在C++中正确编译,但仍有少数差异,导致某些有效的C代码在C++中失效,或者在C++中有不同的行为。

最常见的差异之一是,C允许从void*隐式转换到其它的指针类型,但C++不允许。

比如

int*i=malloc(sizeof(int)*5);

在C中是合法的,在C++中就必须

int*i=(int*)malloc(sizeof(int)*5);


另一个常见的可移植问题是,C++定义了新关键字,例如如new,class,它们在C程序中可以作为识别字(例:变量名)的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-29
不能完全按照C的方式写代码,这样有的会通不过。
C的内存模型和C++的就不一样!
c++有统一的标准,编译器开发商如布朗得,微软在此基础上开发编译器,也善未达到 100%兼容.
c也有国际标准和不同的开发商开发的编译器。
一般得讲C++是兼容C的,然而,由于历史原因,导致的数据结构的变换和留下的庞大的库,没人敢讲C++完全兼容C.
第2个回答  2013-09-18
C++是C的超集,C是C++的子集。一般上来说,如果你学了C++,C的程序是肯定能看懂的。
但是因为现在一般开发C++都是上层应用的,例如VC++呀,Qt之类的。
而C一般是偏向底层的,用GCC之类的编译器来编的,所以虽然代码你能看懂,但是不一定能搞懂,或者能去开发(这也就是为什么很多做纯C的待遇蛮高)。
语言其实是很简单的,真正重要的是很多其他的技术,所以要保持一个学习的心态,学哪个语言没关系的
第3个回答  2012-05-29
C包含于C++,在一定程序条件下,两者能够相互转换,但是超出这个一定条件,肯定就不行了。这部分,肯定是涉及到C++新特性
第4个回答  2016-12-06
C++可以兼容大部分C语言编程。
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。
C语言是C++的基础,C++和C语言在很多方面是兼容的。
C++一般被认为是C的超集合(Superset),但这并不严谨。大部分的C代码可以很轻易的在C++中正确编译,但仍有少数差异,导致某些有效的C代码在C++中失效,或者在C++中有不同的行为。
最常见的差异之一是,C允许从void*隐式转换到其它的指针类型,但C++不允许。
比如
int*i=malloc(sizeof(int)*5);

在C中是合法的,在C++中就必须

int*i=(int*)malloc(sizeof(int)*5);
另一个常见的可移植问题是,C++定义了新关键字,例如如new,class,它们在C程序中可以作为识别字

更多C++内容可到itjob技术交流群探讨