C++和C的兼容性
1 简介
1.1 C++不是C的超集
C++和C语言关系紧密,在许多集成开发环境中常常可以同时进行这两种语言的开发。C++是面向对象的语言,是由C发展而来。C是过程式编程语言。两种编程语言有很大的交集,但是也存在不同。
1.2 标准
C++: C++11
C: C99, C11
2 不同之处
- 在C中允许void*赋值给任何指针类型并且不需要强制转换,但是C++不行;在C++需要进行强制转换。举例如下:
// c code;
int *i = malloc(sizeof(int)*5); //implicit conversion from void* to int*
// c++ code;
Int *j = (int *) malloc(sizeof(int) *5)
- C++编译器禁止使用goto.
- C++中逗号运算符可以作为左值,C中不行。
- C++允许重复定义typedef,C中不行
typedef struct s{/*…*/}s;
typedef int I;
typedef int I;
typedef I I;
- enum 中值,在C中为