【发布时间】:2016-10-08 13:55:46
【问题描述】:
我想知道当我使用main 函数的返回值时会发生什么。
我发现如果我从main返回一个数组变量(应该是退出状态)并在shell中打印退出状态,输出总是56。不知道为什么?
C 程序:
int* main(void) {
static int x[3];
x[0]=89;
x[1]=15;
x[2]=10;
return x;
}
我测试如下:
gcc array_return.c -o array_return
./array_return
echo $?
即使我更改数组的大小或更改其中的数字,输出也始终为56。 56这个数字是什么意思?
【问题讨论】:
-
56 没有任何意义;程序无效。
-
@JohnZwinck 我不这么认为。如果这是一个错误,那么为什么它不会改变并堆叠在 56 处?我的问题也不是在 main 上返回正确的东西(每个人都知道 0 是正确的)。
-
您的程序无效。 56 不是一个有用的数字,它只是由于你的平台的一些怪癖而你最终得到的一些随机废话。有效类型是 int。如果您将编译器警告作为错误启用,您可能会发现您编写的代码甚至无法编译。例如我的编译器说
error: return type of 'main' is not 'int' -
@JohnZwinck 我的问题不重复。你的工作是否正确,你可能对 56 点是正确的,我不这么认为,但我的问题与任何其他问题都不重复。我请求您取消阻止我的问题...
-
好的,我将重新打开这个问题,我们将看看它是如何进行的。顺便说一句,“做好你的工作”是惊人的。你应该试着对更多的人这么说。
标签: c shell main exitstatus