gpt4 book ai didi

c - 如何跨多个函数使用goto

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:41 24 4
gpt4 key购买 nike

我试图在不使用 exit() 的情况下退出程序。我想出了一个非常复杂和肮脏的解决方案(我是初学者)。我想使用 if 语句,如果它是真的,那么我想使用 goto 转到 main 函数,然后 return 3; 并结束程序。

这里有一些代码:

    FILE *filepointer;

char * line = NULL;
size_t len = 0;
size_t read;
int linecount = 0;
filepointer = fopen(filename, "r");
if (filepointer == NULL)
{
printf("[ERR] Could not read file %s.\n",filename );
goto FILE_ERROR;
}
...
int main(){
...
FILE_ERROR: return 3;

}

但是这不起作用,因为我无法在函数之间跳转,因为我得到了 undeclared Label 作为错误。有什么方法可以从我的程序中排除 exit() 并且仍然结束它返回某个值。如果有更好的解决方案,请告诉我

最佳答案

这个问题唯一好的答案是:不要这样做。以这种方式使用的 goto 使您的代码很难推理。

重构您的代码,使您拥有清晰的调用结构和层次结构。使用返回值在整个调用堆栈中传播成功/失败。

关于c - 如何跨多个函数使用goto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47671509/

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