我运行以下 C 代码并收到警告:控制到达非无效函数的结尾
int main(void) {}
有什么建议么?
只需放入return 0
您的main()
. 您的函数 main 返回一个 int ( int main(void)
) 因此您应该在它的末尾添加一个 return 。
控制到达非空函数的末尾
Problem: I received the following warning:
警告:控制到达非无效函数的结尾
解决方案:此警告类似于 Return with no value 中描述的警告。如果控制到达函数的末尾并且没有遇到返回,则 GCC 假定返回没有返回值。但是,为此,该函数需要一个返回值。在函数的末尾,添加一个 return 语句,该语句返回一个合适的返回值,即使控制永远不会到达那里。
解决方案:
int main(void)
{
my_strcpy(strB, strA);
puts(strB);
return 0;
}
作为向 中添加return
语句的明显解决方案的替代方案main()
,您可以使用 C99 编译器(“gcc -std=c99”,如果您使用的是 GCC)。
main()
在 C99 中,没有语句是合法的return
,然后 final}
隐式返回 0。
$ gcc -c -Wall t.c
t.c: In function ‘main’:
t.c:20: warning: control reaches end of non-void function
$ gcc -c -Wall -std=c99 t.c
$
纯粹主义者认为重要的注意事项:您不应该通过声明main()
为返回类型来修复警告void
。
主函数的返回类型为 int,如
int main(void)
但是您的 main 函数不返回任何内容,它会在之后关闭
puts(strB);
添加
return 0;
之后,它将起作用。