c语言goto语句的问题。

void key_1() interrupt 10 //这是我程序的一部分,运行提示 TEXT3.C(289): 错误 C233: 'a': undefined label,请问该如何实现我需要的功能。新手求罩。
{
xz++;
goto a;
}
main()
{
Initialize();
a: switch(xz)
case 1:
while(1)
{
led_1();
}
}

错误 C233: 'a': undefined label,

意思是:标签a:未定义(就使用)。

可试试把label a的定义放到引用的前边。

main()

{

 Initialize();

  a: switch(xz)

   case 1:

    while(1) 

    {

     led_1();

    }

}

void  key_1() interrupt 10     

{

 xz++;

 goto a;

}

在VC6下这样编译可以通过。

另,中断中跳转到主程序确实容易导致问题,如果一定要马上处理,建议把跳转的部分独立出来做成函数调用。

追问

。。点错了,我要采用您的答案的,谢谢您。

追答

不必客气。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-26
最好不要使用goto,使用goto会使程序可读性差。而且还是单片机在中断程序里使用goto,这个坏习惯,得改。本回答被提问者采纳

c语言goto语句的问题。
main(){ Initialize(); a: switch(xz) case 1: while(1) { led_1(); }}void key_1() interrupt 10 { xz++; goto a;}在VC6下这样编译可以通过。另,中断中跳转到主程序确实容易导致问题,如果一定要马上处理,建议把跳转的部分独立出来做成函数调用。

C语言中goto的用法
1. goto 语句的缺点 尽管 goto 语句在日常编程中不常被提及,但它存在一个致命的缺点:滥用 goto 语句可能导致逻辑混乱,从而引发系统崩溃等问题。因此,尽管它有时能简化代码,但在大多数情况下,我们更倾向于使用其他控制流程的结构。2. goto 语句的结构与用法 goto 语句的基本结构通常包含一个标签(...

C语言在函数中使用goto的问题
goto只能在同一个函数体内用,不能跨函数用。你这里错就是错在aa()里跳出到外面去了,所以Label A在aa()未定义。int main(){ A:printf("1\\n");aa();goto A;printf("2\\n");aa();} void aa(){ return;} 这是按照你的意思写的,但是我警告你,这是个死循环,会一直goto下去,因为你...

C语言在函数中使用goto的问题
goto只能在同一个函数体内用,不能跨函数用。你这里错就是错在aa()里跳出到外面去了,所以Label A在aa()未定义。int main(){ A:printf("1\\n");aa();goto A;printf("2\\n");aa();} void aa() { return;} 这是按照你的意思写的,但是我警告你,这是个死循环,会一直goto下去,因为...

为什么C语言中的go to 语句老师说要小心使用?注意的地方是什么?
在C语言中使用goto语句的注意事项如下:使用goto语句只能转移到到同一函数内,而不能从一个函数里转移到另外一个函数里。使用goto语句在同一函数内进行转移时,转移的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。不能从一段复杂的执行状态中的位置goto到另外...

c语言goto语句用法
1、C语言中goto又叫无条件转移语句,可以让程序直接跳转到任意标记的位置。用法就是“gotolabel……label”。下面用一个示例来演示具体的用法,这里先新建一个C语言的程序文件,演示使用的是VisualStudio软件作为开发工具。2、输入goto语句应用代码,这里先定义两个变量a和b,然后用printf函数打印两句话,...

关于C语言中的GOTO问题
汇编语言才用goto语句,C里面用doto程序会乱掉,小程序简单的可能还挺清晰,但是程序的循环复杂到一定程度后goto出错的可能性很大的。goto实现的是循环,C里面一般用for,while,do while语句来实现循环

C语言中goto的用法要尽量详细
goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。如: label: i++;loop: while(x<7);goto loop;C语言不限制程序中使用标号的次数,但各标号不...

c语言中,我这条GOTO语句哪里出错了?
\/\/ 原来是((ch=getchar())=='a') 这个意思是要输入第三次字符。输2个不出数 printf("Saturday\\n");} 完整程序代码:include<stdio.h> void main(){ char ch;printf("Please input the frist zimu.");scanf("%c",&ch);switch(ch){ case 's':goto s;case 'm':printf("Monday"...

关于C语言goto语句的使用问题 进明白人进来看下
第二个程序,如果你到达there之后,程序还是会继续运行后面的语句!所以跟你第一个程序的结果不一样!if…else…结构,控制的只能是他本身的语句。而你使用了goto,所以,程序跳出了if语句的控制范围。所以还是会执行后续的语句。

相似回答