关于自定义函数和main函数里面的return的区别
自定义函数中的return 0;
假设我们写一个关于在顺序表尾部添加一个元素的函数
1 | int appendElem(SeqList *L, Element e){ |
可以看到我这里使用了两个return,当顺序表满的时候,则返回一个0,当我成功在末尾添加好了一个element类型的e元素的时候,则返回一个1。
在自定义函数中,我们return的值是返回给我们的main的。其实我觉得你可以理解为这是一个状态码(404,200这样的状态码)。
如果说我们添加成功的话,函数返回一个1用于让main函数来判断有没有添加成功。
1 | int main(int argc, char *argv[]) { |
主要看到int result = appendElem(&List, 1); 这里就是让我们的result参数来保存我们appendElem()的返回值。用于我们后面的if判断。如果函数返回值为0,那么我们就代表添加失败了。
所以我们的自定义函数的返回值是用来让main函数看的。
知道了自定义函数,我们现在来看看main函数
main函数中的return
前面我们知道了自定义函数的返回值是让main函数看的。那main函数的返回值大概率是让计算机来看的。但是这两者的返回值的结果还有一点不同。
自定义函数的返回值如果是1的话,则表示成功了,如果是0的话则表示失败了。但是main函数截然相反,如果返回值的结果是0的话,则表示程序正常运行,如果是1的话才表示失败了。
所以可以看到这里
1 | int result = appendElem(&List, 1); |
我们在if里面使用的返回值是1,表示我们没有正常的添加成功这个元素,然后当我们的元素成功添加之后,我们这里就会使用返回值0来告诉我们的计算机,我们这个程序正常运行没有问题。
通过clion可以直观的看到,我们调试的函数返回值是1,那么,我们的代码就会成功的添加了这个元素。
区别
简单说就是:
自定义函数:返回给人(调用者),1 往往表示成功(业务逻辑),可自由定义。
main 函数:返回给操作系统,0 表示成功,非 0 表示失败,受限于系统规范。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 AnimeBucket's blog!







