当前位置: 技术问答>linux和unix
最简单的C程序,出现了问题!
来源: 互联网 发布时间:2014-12-22
本文导语: ttt.c 的内容如下: #include main() { printf("hello"); } 用 gcc ttt.c -o ttt -Wall 有如下的提示: ttt.c :3: warning : return type defaults to 'int' ttt.c in function 'main' ttt.c :8: warning control reaches end of non-void function 再./tt...
ttt.c 的内容如下:
#include
main()
{
printf("hello");
}
用 gcc ttt.c -o ttt -Wall 有如下的提示:
ttt.c :3: warning : return type defaults to 'int'
ttt.c in function 'main'
ttt.c :8: warning control reaches end of non-void function
再./ttt 没有提示. 不知是什么问题?
#include
main()
{
printf("hello");
}
用 gcc ttt.c -o ttt -Wall 有如下的提示:
ttt.c :3: warning : return type defaults to 'int'
ttt.c in function 'main'
ttt.c :8: warning control reaches end of non-void function
再./ttt 没有提示. 不知是什么问题?
|
用
int main()
{
printf("hello");
return 0;
}
就不会有警告了。
int main()
{
printf("hello");
return 0;
}
就不会有警告了。
|
c语言中凡是没有写返回值得函数被当作返回值是int
你的main没写返回值,编译器就当作int mian处理。当然要你给一个返回值
你的main没写返回值,编译器就当作int mian处理。当然要你给一个返回值
|
上面的说的对:./ttt如果没有输出的话
将pinrtf("hello");换为
printf("hellon");
就行了.
因为printf("");输出在缓冲区里,当遇到n就清空缓冲区.输出到标准输出中.
将pinrtf("hello");换为
printf("hellon");
就行了.
因为printf("");输出在缓冲区里,当遇到n就清空缓冲区.输出到标准输出中.
|
楼上两位说得对
但是gcc对这种问题只作警告处理,还能编译的过去。
所以第二次执行./ttt,是运行已经编译成功的程序,
就没有警告了
但是gcc对这种问题只作警告处理,还能编译的过去。
所以第二次执行./ttt,是运行已经编译成功的程序,
就没有警告了
|
那个是警告而已,不过要注意自己的编程风格.这样程序好维护.