我知道C ++支持的ANSI C 89和C之间存在一些差异。
例如在ANSI C 89中,您应该在块的第一行声明变量。
或当您想声明struct
个变量时,您应该使用struct
个关键字(例如struct student std1;
)。
或//对于评论无效,您应该使用/ ** /在ANSI C 89中进行评论。
例如,此C代码在ANSI C 89中无效:
struct student
{
char* name;
};
enum number
{
ODD,
EVEN
};
void test()
{
printf("Hello world!");
int a, b; // Not valid in ANSI C 89, variables should declare at first line of blocks.
student std1; // Not valid. It should be: struct student std1;
struct student std2; // Valid.
number n1 = ODD; // Not valid.
enum number n2 = EVEN; // Valid.
}
我想使用ANSI C 89开发一个应用程序,我的问题是:
C ++支持的ANSI C 89和C之间有什么区别?
答案 0 :(得分:4)
C ++ 98/03的C子集是在C89上建模的(显然,因为C99当时没有出局); C ++ 11的模型是在C99上建模的。尽管如此,语言却完全不同,C ++的C子集与C语言不同。
你实际上是在问“C ++和C之间有什么区别”,这不是一个合适的问题。
(例如,sizeof('a')
在C和C ++中有所不同,所以如果您使用的是MSVC ++,那么了解C ++建模的C标准对您没有任何帮助。