嵌入式学习心得:关键字和宏定义

本文深入探讨了C语言中的高级技巧,包括宏定义、自定义函数与宏函数的区别、inline内联函数的应用、条件编译的使用场景以及register、static、extern等关键字的功能和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


宏定义的作用:避免幻数,提高维护性,灵活。缺点在于傻瓜式替换
定义变量的三种方式:define  const   enum


宏函数和自定义函数优缺点;
自定义函数效率低,宏函数代码实现简单而且频繁调用,编译时间换空间


inline内敛函数;空间换执行时间,条件编译的作用:#ifdef 和 #ifndef: 防止头文件重复包含导致重复定义。


关键字:
register 把变量变成变成寄存器变量,请求编译器尽可能的把变量保存在寄存器中,提高运行效率


CPU  三大组成部分,
 运算器, 控制器    存储器(寄存器)
频繁被访问的变量,用register  修饰


注意register  只能修饰局部变量,不能修饰全局变量
和函数
    register  变量不在内存中存储,所以不能用&取地址
    register  修饰的变量必须是CPU所接受的


static关键字:  static  只修饰局部变量,保存在数据区静态数据区,使这个局部变量生命周期延长到整个函数结束之后再释放。
                static 修饰全局变量(静态函数)只能在本文件上访问,不能在其他文件访问。
                 static  既可以修饰变量,又可以修饰函数。


extern  关键字:外部声明,声明变量在外部定义;声明变量在其他的文件定义当前文件可以访问。


const 只读变量,修饰变量名,不是修饰对应的空间。
作用:const 离谁近,谁就不能变
修饰变量的初始化值要给变量


volatile   关键字:  (硬件)
防止编译器优化


评价一个函数优先考虑一下两个方面:


入口函数检查:


有无const函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值