晚上看内核代码,看到一个有意思的宏,我之前没有见到过,当然,肯定有人见到过,我写出来是给那些没有看到过的人看的。

我说是深夜,那就肯定是深夜

Linux内核代码,第一次看到这样使用的宏_javascript

代码是从内核里面看到的

Linux内核代码,第一次看到这样使用的宏_javascript_02

Linux内核代码,第一次看到这样使用的宏_内核_03

Linux内核代码,第一次看到这样使用的宏_内核_04

我们正常使用宏是这样的

​C语言、嵌入式中几个非常实用的宏技巧​

#include "stdio.h"
#define UART_RBR(base) (unsigned long)(base+0x01) /* Read only */

unsigned int mtk_uart_read_byte()
{
unsigned long base = 0x1231231;
return UART_RBR(base);
}

int main()
{
printf("%lx\n",mtk_uart_read_byte());
getchar();
return 0;
}

然后这个代码写成了这样

#include "stdio.h"
#define UART_RBR (unsigned long)(base+0x01) /* Read only */

unsigned int mtk_uart_read_byte()
{
unsigned long base = 0x1231231;
return UART_RBR;
}

int main()
{
printf("%lx\n",mtk_uart_read_byte());
getchar();
return 0;
}

Linux内核代码,第一次看到这样使用的宏_javascript_05

关注公众号,后台回复「​1024​」获取学习资料网盘链接

欢迎点赞,关注发,您的每一次鼓励,我都将铭记于心~

Linux内核代码,第一次看到这样使用的宏_javascript_06

嵌入式Linux

微信扫描二维码,关注我的公众号