C不是C+的子集在哪里?

C不是C+的子集在哪里?

我在很多书中读到,C是C+的一个子集。

有些书说C是C+的子集,除了那些小细节.

在某些情况下,代码将在C中编译,而不是C+?


汪汪一只猫
浏览 567回答 3
3回答

拉丁的传说

如果你比较C89带着C++下面是几件事C+中没有暂定定义int n;int n; // ill-formed: n already definedint[]和int[N]不兼容(C+中没有兼容类型)int a[1];int (*ap)[] = &a; // ill-formed: a does not have type int[]无K&R函数定义样式int b(a) int a; { } // ill-formed: grammar error嵌套结构在C+中具有类范围。struct A { struct B { int a; } b; int c; };struct B b; // ill-formed: b has incomplete type (*not* A::B)没有默认的intauto a; // ill-formed: type-specifier missingC99增加了很多其他案例参数数组尺寸中的声明说明符没有特殊处理// ill-formed: invalid syntaxvoid f(int p[static 100]) { }无变长阵列// ill-formed: n is not a constant expressionint n = 1;int an[n];没有灵活的数组成员// ill-formed: fam has incomplete typestruct A { int a; int fam[]; }; 没有用于帮助混叠分析的限制限定符// ill-formed: two names for one parameter?void copy(int *restrict src, int *restrict dst);

慕标琳琳

在C中,sizeof('a')等于sizeof(int).在C+中,sizeof('a')等于sizeof(char).

明月笑刀无情

C+也有新的关键字。以下是有效的C代码,但不能在C+下编译:int class = 1;int private = 2;int public = 3;int virtual = 4;
打开App,查看更多内容
随时随地看视频慕课网APP