nahongyan1997 发表于 2020-8-12 15:00:32

最初级问题

本帖最后由 nahongyan1997 于 2020-8-12 15:30 编辑

代码:
#include <stdio.h>

void main(){
        printf("111");
}

为什么这样不能执行而这样可以执行,代码:
#include <stdio.h>

int main(){
        printf("111");
        return 0;
}

zltzlt 发表于 2020-8-12 15:02:17

有些编译器写 void main() 会报错,而且你第二段代码第 5 行末尾漏了个分号,是不能执行的

baige 发表于 2020-8-12 15:03:13

int main(void)这才是ANSI C的标准,void main()
这是很久以前的非正式标准,最新的编译器都不支持void main()了

sunrise085 发表于 2020-8-12 15:03:38

标准C语言的main函数的返回值是 int 类型

不过有部分编译器可以定义main函数的返回值类型为 void ,但是实际上这是错的。
很多编译器会认为void main() 是不对的。

风过无痕1989 发表于 2020-8-12 15:14:31

本帖最后由 风过无痕1989 于 2020-8-12 15:39 编辑

我的VC++6.0编译器与DEV_C++5.11,可以执行你的两段程序,只是第二段程序第5句:return 0后面必须要加分号,否则编译器报错

用 DEV_C++5.11再编译运行时,会报错,原因是两者之一:1、你使用的是 .cpp 时,报错: command line option'-std=c99' is valid for C/ObiC but not for C++
'::main' must return 'int',此时,你只需要将后缀 .cpp 改成 .c 即可;2、是你那个目录了下其他的文件太多(有可能还是编译器分不清楚是C程序,还是C++程序,此时,将该目录下的其他不必要的文件全部删除,只留下 test.c 和 Debug文件包即可,如图:

页: [1]
查看完整版本: 最初级问题