返回值1在C中的含义

返回值1在C中的含义,c,C,此C程序返回值为1。返回值1的含义是什么?为什么返回1 void main(){ ;; ;;"Hi";; ;; } 当我使用int main()时,我得到编译时错误-[error]ld返回1个退出状态 此C程序返回值为1。返回值1的含义是什么?为什么返回1 void main(){ ;; ;;"Hi";; ;; } 在本例中,它表示任何内容(未定义的行为) 当我使用int main()时,我得到编译时错误-[error]ld返回1个退出状态 这意味着程序异常终止 main的返回值是一种状态代

此C程序返回值为1。返回值1的含义是什么?为什么返回1

void main(){
;;
;;"Hi";;
;;
}
当我使用
int main()
时,我得到编译时错误-
[error]ld返回1个退出状态

此C程序返回值为1。返回值1的含义是什么?为什么返回1

void main(){
;;
;;"Hi";;
;;
}
在本例中,它表示任何内容(未定义的行为)

当我使用int main()时,我得到编译时错误-[error]ld返回1个退出状态

这意味着程序异常终止


main
的返回值是一种状态代码,在某些操作系统中,当程序终止时可以对其进行测试<如果程序正常终止,code>main应返回
0
;要指示异常终止,
main
应返回除
0
以外的值。(实际上,没有规则阻止我们将返回值用于其他目的

首先,在
C
中没有任何东西像
void main()
main()
应始终返回整数。因此,返回值可能是您案例中的任何内容<代码>void main()
在c标准中未定义。看一看

根据ISO/IEC 9899 5.1.2.2.1

程序启动时调用的函数名为main。实现声明没有
此功能的原型。它应定义为int的返回类型。。

<代码> > /p> >“代码>空格main <代码>不是合法C++(或C我认为)此程序无效。C.<代码> main < /C> >声明为返回代码> int <代码>,而不是<代码>空白>代码>假设编译器不阻塞<代码>空隙主体()/<代码>,代码的任何部分都可以调用<代码>退出(1)< /代码>。只发布
main()
不会有多大帮助。@ShafikYaghmour Dev-C++和gcc实际上,它可能没有任何意义。我不是这个意思。问题是C标准没有指定任何关于这个程序返回值的内容。例如,GCC只允许程序向操作系统返回一些未指定的值,因此它没有任何意义。@larsmans;我在回答的最后加了一行——实际上,没有规则阻止我们将返回值用于其他目的。你似乎误解了我的观点。虽然C程序可以将返回用于其他目的,但此程序不能,因为其返回值不确定。它不能合法地用于任何目的。你的答案是目前为止最好的。尽管如此,C中返回值的主要问题到目前为止还没有完全得到回答。事实上,我发现这个问题是因为我想知道0和1在C中是否可以用作假/真。谷歌这样发给我,我感到惊讶的是,答案并不是那么好,主要集中在对这个问题的否决(!)上,我觉得这是对SO的滥用(我这里不是指你的回答,而是那些否决这个问题的人).你读过问题了吗?该问题询问了1的返回值-它没有询问main()。是的,他错误地使用了main(),方法体也错了——但这不是问题所在。出于某种原因,人们似乎首先关注问题的错误主体,而不是问题本身。