我知道ANSI c89和c++支持的C之间存在一些差异。
,例如在ANSI C 89中,你应该在代码块的第一行声明变量。
或者当你想声明struct
变量时,你应该使用struct
关键字(例如struct student std1;
)。
或//不能用于注释,在ANSI C 89中应该使用/**/进行注释。
在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开发一个应用程序,我的问题是:
ANSI C 89和c++支持的C有什么区别?
c++ 98/03的C子集是以C89为模型的(显然,因为C99当时还没有出来);c++ 11的模型是基于C99的。然而,这两种语言有很大的不同,c++的C子集与C语言也不一样。
你实际上是在问"c++和C有什么区别",这不是一个合适的问题。
(例如,sizeof('a')
在C和c++中是不同的,所以如果你使用msvc++,知道c++建模的C标准对你没有任何帮助)。