2
A
回答
14
因为你”不要使用-Wall标志。当你这样做时,你应该得到:
foo.c:1: warning: return type defaults to ‘int’
foo.c: In function ‘main’:
foo.c:1: warning: implicit declaration of function ‘printf’
foo.c:1: warning: incompatible implicit declaration of built-in function ‘printf’
foo.c:1: warning: control reaches end of non-void function
2
你忘了启用警告编译:
gcc -Wall ...
1
你的主函数什么都不返回。所以在void main()中修改。 通常是:
int main() { printf("Hello world"); return 0; }
+0
一个小评论:我从Gman在这里学到了,即使它是* int main(){..} * return 0;不需要。不知道它是否会产生警告或不适应:) – Default 2010-04-01 11:11:07
0
由于这是合法的ANSI C89,所以不会产生警告。隐式假定没有指定返回类型的函数返回int
。
如果您希望编译为C89,但要注意使用隐式int,则应将-Wimplicit-int
作为命令行参数(或-Wall
,这会启用该警告以及其他许多警告)。
如果要编译为C99,则应该通过-std=c99
和-pedantic-errors
,如果使用隐式int将导致编译器发出错误。
相关问题
- 1. Mysql警告问题?
- 2. 目标C类 - 警告问题
- 3. ID没有警告?
- 4. 警告:没有先前的声明 - C++
- 5. 警告:声明没有效果(C++)
- 6. 警告:语句没有效果(C++)
- 7. 有问题的类的使用警告
- 8. 问题有鉴于内存警告
- 9. 我没有使用任何启动图像警告问题
- 10. Xcode:没有在问题导航器中显示警告
- 11. 警告消息的问题
- 12. PHP会话警告问题
- 13. sprintf警告 - 编码问题
- 14. Iphone内存警告问题
- 15. JavaScript警告在asp.net问题
- 16. UIViewController内存警告问题
- 17. Lint警告问题559
- 18. Xcode中 - 警告问题
- 19. PHPDocumentor日期问题警告
- 20. log4j警告问题 - apache commons
- 21. jquery警告没有出现
- 22. HMAC_KEY没有设置警告
- 23. PDO - 没有任何警告
- 24. autoreleased没有池警告?
- 25. C memset警告
- 26. 警告:用C
- 27. C++ _CRT_SECURE_NO_WARNINGS警告
- 28. SQlite C警告
- 29. 警告:用C
- 30. 警告:在C++
我没有谈论其他Warnngs ..我只是想知道为什么没有像“返回类型的主要是int”的警告,即使我编译使用gcc -Wall – 2010-04-01 06:57:26
抱歉,我现在得到它..最后一行的警告是为main()本身 thanxx ... – 2010-04-01 07:01:29
@Grv:如果它回答你的问题,请不要忘记接受一个答案(点击选中标记)。 – 2010-04-01 10:36:24