一事不明,关于main函数return 0

时间:2022-05-05 21:27:22
c语言中 1等于true,0等于false,那么main函数中为嘛要返回0而不是1呢?
这种规定有问题吗

#include "stdafx.h"
int main( int argc, char *argv[] ) 
{
return ( int )true;
}

15 个解决方案

#1


main的返回值不是bool,是int,一般int类型的返回值,返回0表示正常,其他值表示其他意义

#2


因为他是main 木有问题,不好理解的话,这就是规定

#3



return ( int )true;


这返回的是int类型啊,没bool啥事吧。

#4


返回的其实是一个int值,参考下面的文章就会很清楚了:
http://blog.csdn.net/fangfei_119/article/details/2256656
http://blog.csdn.net/piaojun_pj/article/details/5986516

引用 楼主 u013457767 的回复:
c语言中 1等于true,0等于false,那么main函数中为嘛要返回0而不是1呢?
这种规定有问题吗

#include "stdafx.h"
int main( int argc, char *argv[] ) 
{
return ( int )true;
}

#5


 返回值类型是int,所以建议返回正确写return 0,而不是return true。
至于 c语言中 1等于true,0等于false,你这个说法也是不正确的,true和false的值不是在任何地方都等于1和0的。
  很多时候函数正常返回0,异常返回-1

#6


成功运行了的程序只有一种可能----返回0
失败的程序则各有各的失败----返回各种非0

#7


c语言没有布尔型这个概念,c语言的真和假用0和非0表示,0为假,非0为真。至于man函数返回0,是因为规定main函数为int型的,而int型的函数必须返回int型的数据,而返回0一般表示函数正常结束,返回其他值有其他含义。

#8


windows用0表示正常、成功,非0就表示相应的失败error

#9


负数一般是false
其他是true

#10


0 标识 false  非0 true
函数返回值要匹配函数的原型的!
main函数是程序的入口函数,返回会给系统的,0表示正常吧

#11


。。。楼主你想太多了

#12


这其实是一个宏定义值,只是人家一般未使用宏定义,直接数字了,定义在stdlib.h中
/*
 * These values may be used as exit status codes.
 */
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

标准写法应该是
return EXIT_SUCCESS;

当然这需要include上stdlib.h

#13


自己编写的程序 main()是主函数, 实际上这个main是要被系统函数调用的,main函数 的返回值 是 这个系统函数 查看 你写的这个程序 的退出 状态的。 你可以看看return()和 _exit()的区别 , 你对这个问题的理解。

#14


人家喜欢返回0咋的了
人家有没有说不许你返回false
你完全可以返回任何你喜欢的数

#15


引用 12 楼 pathletboy 的回复:
这其实是一个宏定义值,只是人家一般未使用宏定义,直接数字了,定义在stdlib.h中
/*
 * These values may be used as exit status codes.
 */
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

标准写法应该是
return EXIT_SUCCESS;

当然这需要include上stdlib.h

您说的才是重点,解决了我的问题。thanks

#1


main的返回值不是bool,是int,一般int类型的返回值,返回0表示正常,其他值表示其他意义

#2


因为他是main 木有问题,不好理解的话,这就是规定

#3



return ( int )true;


这返回的是int类型啊,没bool啥事吧。

#4


返回的其实是一个int值,参考下面的文章就会很清楚了:
http://blog.csdn.net/fangfei_119/article/details/2256656
http://blog.csdn.net/piaojun_pj/article/details/5986516

引用 楼主 u013457767 的回复:
c语言中 1等于true,0等于false,那么main函数中为嘛要返回0而不是1呢?
这种规定有问题吗

#include "stdafx.h"
int main( int argc, char *argv[] ) 
{
return ( int )true;
}

#5


 返回值类型是int,所以建议返回正确写return 0,而不是return true。
至于 c语言中 1等于true,0等于false,你这个说法也是不正确的,true和false的值不是在任何地方都等于1和0的。
  很多时候函数正常返回0,异常返回-1

#6


成功运行了的程序只有一种可能----返回0
失败的程序则各有各的失败----返回各种非0

#7


c语言没有布尔型这个概念,c语言的真和假用0和非0表示,0为假,非0为真。至于man函数返回0,是因为规定main函数为int型的,而int型的函数必须返回int型的数据,而返回0一般表示函数正常结束,返回其他值有其他含义。

#8


windows用0表示正常、成功,非0就表示相应的失败error

#9


负数一般是false
其他是true

#10


0 标识 false  非0 true
函数返回值要匹配函数的原型的!
main函数是程序的入口函数,返回会给系统的,0表示正常吧

#11


。。。楼主你想太多了

#12


这其实是一个宏定义值,只是人家一般未使用宏定义,直接数字了,定义在stdlib.h中
/*
 * These values may be used as exit status codes.
 */
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

标准写法应该是
return EXIT_SUCCESS;

当然这需要include上stdlib.h

#13


自己编写的程序 main()是主函数, 实际上这个main是要被系统函数调用的,main函数 的返回值 是 这个系统函数 查看 你写的这个程序 的退出 状态的。 你可以看看return()和 _exit()的区别 , 你对这个问题的理解。

#14


人家喜欢返回0咋的了
人家有没有说不许你返回false
你完全可以返回任何你喜欢的数

#15


引用 12 楼 pathletboy 的回复:
这其实是一个宏定义值,只是人家一般未使用宏定义,直接数字了,定义在stdlib.h中
/*
 * These values may be used as exit status codes.
 */
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

标准写法应该是
return EXIT_SUCCESS;

当然这需要include上stdlib.h

您说的才是重点,解决了我的问题。thanks