ANSI C 89和c++支持的C有什么区别?

  • 本文关键字:区别 支持 c++ ANSI c++ c89
  • 更新时间 :
  • 英文 :


我知道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标准对你没有任何帮助)。

最新更新