嘿伙计我有一个简短的问题,可能有更简洁的答案。我做了一些挖掘似乎找不到答案。我最近回到编程(代码中的C:Blocks / GNU GCC编译器),并且在我的生活中不记得如何使用" goto"声明返回模块中的标签。到目前为止,这是我的代码。
P.S。所有文件都在同一个项目中,位于同一源代码文件夹中。我将扩展这个程序我首先创建代码将工作的框架,因为其余部分实际上是复制和粘贴,只需更改问题和答案。
#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;
}
#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
}
#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
}
如果有人可以了解我需要做些什么,那将会感谢堆。
答案 0 :(得分:2)
您无法在功能外转到标签。此外,你的程序递归调用main(),这几乎肯定是一件坏事。
编辑:如果你想返回标记的地点,只需返回。