编译简单程序不起作用

时间:2011-01-05 11:19:39

标签: c

我有以下C程序(尽可能简单):

#include <stdio.h>

main()
{
printf("Test");
}

但是在Cygwin中使用gcc编译器,除非我做出以下修改,否则我无法使用该程序:

#include <stdio.h>

int main()
{
    printf("Test");
    return 0;
}

有人可以解释为什么吗? “int”和“return 0”有什么特别之处?

谢谢! 阿米特

4 个答案:

答案 0 :(得分:2)

使用C,您始终需要指定输出类型。因此始终需要int(对于某些编译器,void也会起作用。)

“正常”最小版本是:

int main(int argc, char **argv){
    return 0;
}

根据您的系统,您还可以在其中char **envpchar **apple

http://en.wikipedia.org/wiki/Main_function_(programming)#C_and_C.2B.2B

答案 1 :(得分:1)

int是每个C标准main所需的返回类型。

答案 2 :(得分:0)

int是返回码。我相信C默认返回0.一般来说,返回0意味着成功完成程序,而1,2,3 ...将是错误代码。它通常由想要测试程序是否成功运行的程序使用。

答案 3 :(得分:0)

int是函数的返回类型,在本例中为main()。如您所知,您始终需要在C中指定函数的返回类型(可能是void;您不需要返回任何内容)!

当你的函数有一个返回类型(例如int)时,你有义务放一个返回句子(例如return 0;)。在C中,当函数正确执行时,返回0是“标准”。此外,运行程序时,可以获取执行后返回的值(在本例中为0)。如果程序的执行会错误地终止,那么你可以返回任何其他值(-1,1,2等),并且你更容易检测错误并进行调试。