gpt4 book ai didi

c - return 1, return 0, return -1 和 exit 的区别?

转载 作者:太空狗 更新时间:2023-10-29 16:26:50 32 4
gpt4 key购买 nike

例如考虑以下代码:

int main(int argc,char *argv[])
{
int *p,*q;
p = (int *)malloc(sizeof(int)*10);
q = (int *)malloc(sizeof(int)*10);
if (p == 0)
{
printf("ERROR: Out of memory\n");
return 1;
}


if (q == 0)
{
printf("ERROR: Out of memory\n");
exit(0);
}

return 0;
}

上面程序中的return 0, return 1, exit(0)是做什么的?exit(0) 将退出整个程序并且控制跳出循环,但是在 return 0return 1 的情况下会发生什么返回 -1

最佳答案

return from main() 等同于exit

程序立即终止执行,退出状态设置为传递给returnexit的值

内部函数(不是 main)中的

return 将立即终止特定函数的执行,将给定结果返回给调用函数。

exit 从代码的任何地方立即终止程序执行。


status 0 表示程序成功。

status 不同于 0 表示程序由于错误或异常而退出。

如果你以不同于 0 的状态退出,你应该向 stderr 打印一条错误消息,而不是使用 printf 更好的东西,比如

if(errorOccurred) {
fprintf(stderr, "meaningful message here\n");
return -1;
}

请注意(取决于您使用的操作系统)有一些关于返回码的约定。

Google 搜索“退出状态代码”或类似内容,您会在 SO 和其他地方找到大量信息。


值得一提的是,如果您尝试执行一些无效操作(例如读取您无权访问的内存),操作系统本身可能会以特定的退出状态代码终止您的程序。

关于c - return 1, return 0, return -1 和 exit 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604196/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com