对于一个非常具体的项目,我需要在C中编写一个16位程序,我在MS-DOS中使用Microsoft QuickC来编写这个程序。现在我很确定我的程序的语法是正确的,但程序只是不会编译,它认为我有语法错误。这是因为MS-DOS中的C编译器使用不同语法的旧版C吗?
#include<stdio.h>
main()
{
printf("Hello World!");
}
即使是那个简单的hello world程序也不会编译运行。
答案 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'
以下是微软的原因和解决方案:
答案 1 :(得分:-1)
就此而言,您不能省略函数main
或任何其他C函数的类型。所以,你想要
void main() { ... }
或
int main(int argc, char **argv) { ... }
虽然使用后者,编译器通常会要求您返回一个值。