如何为C语言程序指定正确返回类型?解决main函数隐式返回类型警告
解决main函数返回类型隐式声明的警告问题
这个警告的原因很清晰:在C99及之后的标准里,main函数必须显式指定返回类型。旧版本的C允许省略返回类型,默认视为int,但现代编译器会把这种不规范的写法抛出警告。
你只需要把原来的main()修改成显式的int main(void)(因为你的main函数没有接收命令行参数,void明确表示无参数,写法更严谨),或者int main()也可以,就能彻底消除这个警告。
修改后的完整代码如下:
#include <stdio.h> /* function declaration */ void func(void); static int count = 5; /* global variable */ int main(void) { while(count--) { func(); } return 0; } /* function definition */ void func(void) { static int i = 5; /* local static variable */ i++; printf("i is %d and count is %d\n", i, count); }
补充说明两点:
int main(void)明确告知编译器main函数的返回类型是整数,完全符合C标准的要求- 如果后续需要处理命令行参数,可以写成
int main(int argc, char *argv[]),但你的代码场景里不需要,所以int main(void)是最适配的写法
这样修改后,再编译代码就不会出现return type defaults to 'int'的警告了。
内容的提问来源于stack exchange,提问作者mistermarko
相关产品推荐
相关产品推荐

