旧版C语法的区别?

时间:2013-11-04 07:54:56

标签: c

对于一个非常具体的项目,我需要在C中编写一个16位程序,我在MS-DOS中使用Microsoft QuickC来编写这个程序。现在我很确定我的程序的语法是正确的,但程序只是不会编译,它认为我有语法错误。这是因为MS-DOS中的C编译器使用不同语法的旧版C吗?

#include<stdio.h>

main()
{
   printf("Hello World!");
}

即使是那个简单的hello world程序也不会编译运行。

2 个答案:

答案 0 :(得分:3)

你应该将main定义为int

所以请将您的代码更改为:

  int main() {    // define main as an int returning function

       // your code

       return 0; // Also make sure you have return statement in main
  }

它将编译

以下是标准中的内容:

1程序启动时调用的函数名为main。该实现声明此函数没有原型。 应使用返回类型int

进行定义
int main(void) { /* ... */ } 

修改

从您的评论中确定..您现在收到此错误:

   C1024: cannot open include file 'stdio.h'

以下是微软的原因和解决方案:

http://support.microsoft.com/kb/97809

答案 1 :(得分:-1)

就此而言,您不能省略函数main或任何其他C函数的类型。所以,你想要

void main() { ... }

int main(int argc, char **argv) { ... }

虽然使用后者,编译器通常会要求您返回一个值。