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;

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

相关推荐
飞Link1 分钟前
告别复杂调参:Prophet 加法模型深度解析与实战
开发语言·python·数据挖掘
zh_xuan20 分钟前
测试go语言函数和结构体
开发语言·golang
小龙报30 分钟前
【算法通关指南:算法基础篇】二分算法: 1.A-B 数对 2.烦恼的高考志愿
c语言·开发语言·数据结构·c++·vscode·算法·二分
yong999033 分钟前
NNDA、PDA、JPDA、IMM数据关联算法MATLAB实现
开发语言·算法·matlab
Shining059641 分钟前
Triton & 九齿系列《Triton 练气术》
开发语言·人工智能·python·学习·其他·infinitensor
天远Date Lab1 小时前
天远企业司法认证API实战:Python构建企业级供应链合规审查防火墙
大数据·开发语言·网络·python
进击的编程浪人1 小时前
c/c++输入方法及对比
c语言·c++·c#
蓝天智能1 小时前
QT实战:Qt6 编码规范模板
开发语言·qt
水痕011 小时前
go语言里面使用elasticsearch
开发语言·elasticsearch·golang
小邓的技术笔记1 小时前
C# 异步编程深水区:Task、ValueTask、线程池饥饿与背压设计
开发语言·c#