【c&c++】VScode报错error: ‘::main‘ must return ‘int‘ void main()
源代码如下:
#include<stdio.h> void main() { int a,*p,b,c,d,e; a=100; p=&a; /* (*&a) 先进行&a运算,得a的地址,再进行*运算,即变量a的值 */ b=*&a; printf("a=%d\n",a); printf("p=%d\n",p); printf("*p=%d\n",*p); printf("*&a=%d\n",b); c=(*p)++; printf("(*p)++=%d\n",c); /* (*p)++相当于a++,表示p所指向的元素值加1*/ printf("a=%d\n",a); }
报错如下:
原因及解决方案如下:
(1)原因:
有的C编译器要求baimain()函数必须要有一个int的返回值。用以获知main()函数的执行情况。
(2)解决方案:
将void main()修改为以下皆可: int main(void) int main(int argc, const char *argv[]) int main(int argc, const char *argv[], const char *env[])
一般main()函数正常运行结束,就返回一个0;
如果出错,就返回相应的int型的出错代码值(由编程者约定)。
在 C89 标准中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:
int main(void){/百度百科示例代码/}//整数类型主函数(无类型)
int main(int argc,char **argv)//整数类型主函数(整数类型 统计参数个数,字符类型*数组指针至字符[])
main 函数的返回值类型必须是 int ,这样返回值才能传递给程序的激活者(如操作系统)。
如果 main 函数的最后没有写 return 语句的话,C99 规定编译器要自动在生成的目标文件中(如 exe 文件)加入return 0; ,表示程序正常退出。不过,我还是建议你最好在main函数的最后加上return 语句,虽然没有这个必要,但这是一个好的习惯。
也就是说在最新的C语言标准中强制要求main函数的返回值类型为int,main函数的返回值是传递给操作系统,让操作系统判断程序的执行情况(是正常结束还是出现异常)
error: '::main' must return 'int'解决办法
运行出现错误:
error: '::main' must return 'int'
原因:
1、C语言标准允许main函数为void类型。按照C++的标准中main必须是int类型。
2、编译器的原因,有的编译器要求int()函数必须要有一个int型的返回值
把 void main()
改成 int main()
,结尾加上 return 0
:
int main()
{
......//程序内容
return 0;
}
遂编译成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2019-04-24 【tool】VLC播放rtmp协议