C语言中的goto语句

goto label;

C 语言中的 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。

c 复制代码
#include <stdio.h>
int main(){
	
	goto first;
		printf("我是你好\n");

first:
	printf("nihao\n");
	
second:
	printf("This is 2\n");
	
	return 0;
} 

使用goto会跳到标签的位置继续向下执行:

标签的用法和变量定义一样,常用字母开头,加上:
一般都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪

可以用在Linux的设备驱动中:

cpp 复制代码
 error_1:   // 删除一个driver
    device_destroy(ds18b20->ds18b20_class, ds18b20->dev_num);
 error_2:    // 删除一个class
    class_destroy(ds18b20->ds18b20_class);
  error_3:   // 删除字符设备
    cdev_del(&ds18b20->ds18b20_cdev);
  error_4:   // 释放设备号
    unregister_chrdev_region(ds18b20->dev_num, 1);
  error_5:   // 释放内存
    kfree(ds18b20);
	return -1;

根据设备的注册情况,在不同错误下,跳转到不同的节点释放语句处。使其往下依次释放掉注册的设备或驱动。

相关推荐
AKA__Zas几秒前
初识多线程(3.0)
java·开发语言·学习方法
小杍随笔8 分钟前
【Rust 工具链管理工具再升级!rust-verse v1.3.1 ~ v1.3.5 最新更新深度解析】
开发语言·后端·rust
大数据三康25 分钟前
在spyder进行的遗传算法练习
开发语言·python·算法
Vallelonga29 分钟前
Rust 从结构体中取字段的引用
开发语言·rust
社交怪人1 小时前
【三角形面积】信息学奥赛一本通C语言解法(题号2073)
c语言
社交怪人1 小时前
【球体体积】信息学奥赛一本通C语言解法(题号1030)
c语言·开发语言
froginwe111 小时前
Foundation 顶部导航栏详解
开发语言
沐知全栈开发1 小时前
MySQL 运算符详解
开发语言
java修仙传1 小时前
Java 实习日记:断面分析基态限额为空问题的排查与修复
java·开发语言·bug·实习
njsgcs1 小时前
我仓库内cad python 有哪些应用到聚类的方法
开发语言·python·聚类