gpt4 book ai didi

为 goto 函数创建外部标签以跨源文件工作

转载 作者:行者123 更新时间:2023-11-30 18:51:04 25 4
gpt4 key购买 nike

嘿伙计们,我有一个简短的问题,可能有一个更简短的答案。我做了一些挖掘似乎找不到答案。我最近重新开始编程(Code:Blocks/GNU GCC 编译器中的 C),但我一辈子都不记得如何使用“goto”语句返回到模块中的标签。这是到目前为止我的代码。

附注所有文件都位于同一个项目的同一个源代码文件夹中。我将扩展这个程序,我首先创建代码将在其中运行的框架,因为其余部分实际上是复制和粘贴,只需更改问题和答案。

<小时/>

main.c

#include <stdio.h>
#include <stdlib.h>


void second(void);
void third(void);


int question = 0;
int Ans = 0;

int main()
{
system("COLOR FC");
printf("This program is testing a method of linking modules.\n");
printf("For this purpose the two topics chosen are maths and science.\n\n");
printf("Would you like to choose maths or science?\n");
printf("1. Science\n");
printf("2. Maths\n\n");

//Responding to the first input

scanf("%d",&question);
if(question==1)
{
second();
}
if(question==2)
{
third();
}
//When the first input has been desired and the module has been completed.
//This is where i wish to return.
goto Ending;

//Ending the Program
Ending:
{
system("cls");
printf("The program will now exit.\n");
system("pause");
}


return 0;
}
<小时/>

第二个.c

#include <stdlib.h>
#include <string.h>
#include <stdio.h>


void second(void)
{
system("pause");
system("cls");
system("COLOR E5");
printf("Here is the Science Module\n");



system("pause");
return main();
//I WANT TO RETURN TO THE LABEL:ENDING; FROM HERE
}
<小时/>

第三.c

#include <stdlib.h>
#include <string.h>
#include <stdio.h>


void third(void)
{
system("pause");
system("cls");
system("COLOR A4");
printf("Here is the Maths Module.\n");

system("pause");
return main();
//I WANT TO RETURN TO THE LABEL:ENDING; FROM HERE
}

如果有人可以阐明我需要做什么,我将不胜感激。

最佳答案

您无法转到函数之外的标签。此外,您的程序正在递归调用 main(),这几乎肯定是一件坏事。

编辑:如果您想返回到标记的位置,只需返回即可。

关于为 goto 函数创建外部标签以跨源文件工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38236034/

25 4 0