7.一个”标准”宏MAX,输入两个参数并返回较大的一个(经典写法+Linux内核写法)
1.比较两个数大小返回最大值的经典宏写法(注意细节,要加入括号):
2.Linux内核的实现方法
在GNU C 语言中,如果知道a和b的类型,可以在宏里面定义一个变量,将a和b分别赋值给变量,然后在进行比较:
如果不知道具体的数据类型,就要使用typeof类转换宏,Linux内核中的例子如下:
一个需要注意的问题,下述代码的作用是什么:
(1)首先&_a == &_b 是对_a和_
①两个地址相比的bool值没有被引用的警告(该警告被(void)object;消除)
②两个地址类型不一样,进行比较时Linux会给出类型不一致警告,该警告作为有用警告
(4)要注意,C语言中地址包含两类信息
变量存放在什么地方(位置信息,或者说内存编号/纯地址)
②地址类型: