我用DEV-C++编译C代码为什么总是出错?

#include "stdio.h"
void main()
{
printf("Hello!");
}
很简单的代码,我感觉没错,但是一直提示出错
未命名1.c In function `main':
未命名1.c [Warning] return type of 'main' is not `int'
这是报错内容,还有问一下,这个正确编译以后一闪就过去了,怎么办?
return 0什么意思呢

Dev-C++对C标准很苛刻的
既是缺点又是优点
正确的C99标准的写法是

#include <stdio.h>
int main(void)
{
printf("Hello!");
return 0;
}

[Warning] return type of 'main' is not `int'
这个就是违背了C99规定了
一般的函数都有返回值,而C99规定main函数必须有返回值,如果不希望返回有意义的数字,就返回0,用来表示这个程序运行无误[如果中途中断了程序的运行就不会执行到return,也就无法返回了]
也就是return 0

return就是函数返回的值
一般的函数有进的信息,也有出的信息
进的信息就是参数,一般的main函数,是void,也就是没有参数
出的信息就是return的值
在这个程序中,是0
一般main函数都会返回0
以表示运行无误

按照你说的一闪而过
原因是这个程序已经运行完了
所以就关闭掉

1、
建议你在生成exe的目录下新建一个txt文档
内容写上cmd //这是用来使用CMD,也就是命令提示符用的
然后保存,改名为cmd.bat //一定要改扩展名
然后打开这个bat,输入你生成的文件名
比如那个程序是1.exe
你就输入1.exe
就可以运行了,运行之后虽然程序退出了,但是CMD没有退出,就可以看到程序的信息而不会一闪而过了

2、
建议你在程序末尾加上getchar();
这样在你输入任意一个键之前,程序就不会运行完毕
自然就不会关闭掉

3、还可以在末尾加上system("pause");
这样就调用了windows的pause指令,就可以暂停下来
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-06
要不试试这样的看行不?

#include "cstdio"

using namespace std;

int main()
{
printf("Hello!");

return 0;
}

return 0;这句是说如果你的主程序顺利完成,则向系统返回一个整数0;如果出现异常则返回个非0值!一般不用管。只是个形式。
第2个回答  2008-03-06
把函数头改成~
int main(void)
再在函数体里加上return 0;
即可
第3个回答  2008-03-06
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello!");
system("pause");
return 0;
}
这个可以的!
第4个回答  2008-03-06
是的,那个环境对语言的要求很高,一定要留意细小的部分。
上面的仁兄说的很详细,建议你听他的试一试
相似回答