C语言其他函数学习

C语言其他函数学习,第1张

goto

goto语句也称为无条件转移语句,其一般格式如:

goto 语句标号;

其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加半角冒号“:”。语句标号起标识语句的作用,与 goto 语句配合使用。

static int __init led_init(void) {
int ret;
led_dev = cdev_alloc(); //动态申请一个设备结构体
if(led_dev == NULL) {
goto error;
}
ret = alloc_chrdev_region(&led_dev_num,0,1,"led"); //动态申请一个设备号
if(ret != 0) {
goto error;  //转入下方error段落
}
led_dev->owner = THIS_MODULE; //初始化设备管理结构体的 owner 为 THIS_MODULE
led_dev->ops = &led_ops; //初始化设备 *** 作函数指针为 led_ops 函数
cdev_add(led_dev,led_dev_num,1); //将设备添加到内核中
led_class = class_create(THIS_MODULE, "led_class"); //创建一个类
if(led_class == NULL) {
goto error;
}
led0 = device_create(led_class,NULL,led_dev_num,NULL,"led0")
13; //创建一个设备
if(IS_ERR(led0))
{
goto error;
}
gpioe_cfg0 = ioremap(GPIOE_CFG0,4); //将 GPIOE_CFG0 物理地址映射为虚拟地址
gpioe_cfg1 = ioremap(GPIOE_CFG1,4); //将 GPIOE_CFG1 物理地址映射为虚拟地址
gpioe_data = ioremap(GPIOE_DATA,4); //将 GPIOE_DATA 物理地址映射为虚拟地址
gpioe_pul0 = ioremap(GPIOE_PUL0,4); //将 GPIOE_PUL0 物理地址映射为虚拟地址
return 0;
error:         //error段落
printk(KERN_WARNING"led_init failed!\n");
return 1; }

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

原文地址:https://54852.com/langs/3002585.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-09-27
下一篇2022-09-27

发表评论

登录后才能评论

评论列表(0条)

    保存