打印
[DSP编程]

C语言宏定义1

[复制链接]
736|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蒋博1026|  楼主 | 2019-11-29 13:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
宏定义1

宏定义的规则和使用解析

(1)宏定义的解析规则就是:在预处理阶段由预处理器进行替换,这个替换是原封不动的替换。

(2)宏定义替换会递归进行,直到替换出来的值本身不再是一个宏为止。

#define M 10

#define N M

(3)一个正确的宏定义式子本身分为3部分,第一部分是#define,第二部分是宏名,剩下的所有为第三部分。

(4)宏可以带参数,称为带参宏。带参宏的使用和带参函数非常像,但是使用上有一些差异。在定义带参宏时,每一个参数

在宏体中引用时都必须加括号,最后整体再加括号,括号缺一不可。

#define X(a,b) ((a)*(b))

2、宏定义实例1:MAX宏,求2个数中较大的一个

#define MAX(a,b) ((a)>(b) ? (a) : (b))

关键:

第一点:要想到使用三目运算符来完成。

第二点:注意括号的使用

3、宏定义实例2:SEC_PER_YEAR,用宏定义表示一年中有多少秒

#define SEC_PER_YEAR   (31536000)        //可行,但是不推荐

#define SEC_PER_YEAR   (365*24*60*60)    //错误,默认int类型,超过类型存储范围了,int本身是有符号的

#define SEC_PER_YEAR   (365*24*60*60UL)  //正确写法,将有符号变成无符号,范围扩大一倍

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

323

主题

1820

帖子

18

粉丝