鱼C论坛

 找回密码
 立即注册
查看: 739|回复: 4

[已解决]最初级问题

[复制链接]
发表于 2020-8-12 15:00:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

代码:
#include <stdio.h>

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

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

int main(){
        printf("111");
        return 0;
}
最佳答案
2020-8-12 15:03:13
int main(void)这才是ANSI C的标准,void main()
这是很久以前的非正式标准,最新的编译器都不支持void main()了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-12 15:02:17 | 显示全部楼层
有些编译器写 void main() 会报错,而且你第二段代码第 5 行末尾漏了个分号,是不能执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 15:03:13 | 显示全部楼层    本楼为最佳答案   
int main(void)这才是ANSI C的标准,void main()
这是很久以前的非正式标准,最新的编译器都不支持void main()了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-12 15:03:38 | 显示全部楼层
标准C语言的main函数的返回值是 int 类型

不过有部分编译器可以定义main函数的返回值类型为 void ,但是实际上这是错的。
很多编译器会认为void main() 是不对的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 时,报错:[Warning] command line option'-std=c99' is valid for C/ObiC but not for C++
[Error] '::main' must return 'int',此时,你只需要将后缀 .cpp 改成 .c 即可;2、是你那个目录了下其他的文件太多(有可能还是编译器分不清楚是C程序,还是C++程序,此时,将该目录下的其他不必要的文件全部删除,只留下 test.c 和 Debug文件包即可,如图:

DT.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表