C语言,怎么实现从子程序中直接跳转到其他地方?

C语言,怎么实现从子程序中直接跳转到其他地方?,第1张

在 C 语言中,可以使用函数的返回值来实现从子程序中直接跳转到其他地方。

例如,您可以在 R_NEED_MAN_DO 子函数中添加一个 if 语句,判断 PLC_GI0 的值是否为 88,如果是,则返回一个特定的值,用于指示在主函数中跳转到其他位置。您可以使用 return 语句来实现这一点。示例代码如下:

int R_NEED_MAN_DO() {

// do something...

if (PLC_GI0 == 88) {

return 1

}

// do something else...

}

然后,在您的主函数中,可以根据 R_NEED_MAN_DO 的返回值来实现跳转。例如,如果返回值为 1,则可以使用 goto 语句跳转到指定的位置。示例代码如下:

int main() {

// do something...

int result = R_NEED_MAN_DO()

if (result == 1) {

goto my_label

}

// do something else...

my_label:

// do something after jump...

}

请注意,在大多数情况下,使用 goto 语句来实现跳转是不推荐的,因为它会导致代码难以维护和理解。在实际编写代码时,应尽量避免使用 goto 语句,并尝试使用其他结构来控制程序流程。

goto和call的联系都可以将流程跳转到标签处。

1、Goto是用来跳转代码的,即当代码执行到Goto时,跳转到Rem指定的位置向下执行,它不会在执行完时,返回到Goto语句的下一条。

2、Call也是用来跳转代码的,但是更准确的说,Call是用来调用子程序的。

Fanuc系统的子程序是单独存在的。发那科系统Fanuc系统的子程序是单独存在的goto是分开的,Goto系统恢复速度快,一般不超过1分钟,基本达到零宕机, 而华中系统的子程序是放在主程序结束M30的后面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11489547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存