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

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

代码是从内核里面看到的

我们正常使用宏是这样的

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文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

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

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

嵌入式Linux

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

Linux内核代码,第一次看到这样使用的宏相关推荐

  1. linux内核源码只有makefile文件没有c文件,linux内核代码的编写初步以及makefile的配置...

    在linux内核代码开发中,头文件不能包含标准C头文件,只能采用GNC标准 而且内核开发中没有main函数,只有init 和 exit ,这是每个内核模块中必须要包含的函数模块. 在GNU C标准中, ...

  2. Linux 内核代码行数达到 2700 万行量级

    来自:技术让梦想更伟大 截止到2020年1月1日09:00:10,Linux内核Git源码树中的代码达到了2780万行. phoronix网站统计了Linux内核在进入2020年时的一些源码数据并作了 ...

  3. linux 内核编号含义_如何阅读linux内核代码?

    阅读代码从来就是不可行的方法,有篇文章详细讲了这个事,很多人都觉得应该多读代码, 读好的代码,比如Donald Knuth. 但事实上, 只要简单让你描述一下最近读了什么代码,绝大多数人都说不上.文章 ...

  4. Linux内核代码风格

    Linux内核代码风格 这是一个简短的文档,描述了linux内核的首选代码风格.代码风格是因人而异的,而且我不愿意把我的观点强加给任何人,不过这里所讲述的是我必须要维护的代码所遵守的风格,并且我也希望 ...

  5. 最小的linux内核代码,带你阅读linux内核源码:下载源码、编译内核并运行一个最小系统...

    要学习linux内核,先要能够编译内核,还需要了解内核如何启动根文件系统.这样你才能在修改linux内核代码之后,完成验证的过程. 本文教你完成下列过程: 1.下载linux并编译linux内核源码 ...

  6. 谷歌喊话三星:别再搞 Linux 内核代码了,安卓安全也不保了

    聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 谷歌 Project Zero 团队表示,三星为阻止 Galaxy 手机遭攻击而修改了内核代码,但实际上引发了更多的安全漏洞. 谷歌安全 ...

  7. Ubuntu14.04搭建LXR本地服务器阅读Linux内核代码

    CSDN GitHub Ubuntu14.04搭建LXR本地服务器阅读Linux内核代码 AderXCoding/system/tools/lxr 本作品采用知识共享署名-非商业性使用-相同方式共享 ...

  8. Linux内核代码华人贡献统计

    http://www.remword.com/kps_result/ 这个站点对Linux内核代码补丁进行了详细的统计,感兴趣的童鞋可以看一下. 在这里给大家看一下2005年4月16日至今各个国家贡献 ...

  9. 用VSCODE看linux内核代码

    前言 使用VSCODE在看内核代码时一定会出现如下几种情况: 跳转等半天 跳转出现错误 跳转时出现N多定义 目录结构繁杂,找文件困难等等 通过settings.json屏蔽的方式 该方式比较方便,但是 ...

最新文章

  1. 34岁,外企倒闭成功上岸大厂,50K,附面试秘籍
  2. 这款AI耳机可以主宰你的情绪,决定让你是哭还是笑
  3. python读取大文件-Python如何读取、拆分大文件
  4. Java中 Iterable 和 Iterator 的区别
  5. php redis 队列抢红包_php+redis实现消息队列
  6. 如何在博客内添加音乐
  7. 数组排序(冒泡、排序)
  8. SpringBoot 异常回滚 事务的使用___Springboot @Transactional 事务不回滚
  9. shell学习笔记二则:统计空间
  10. Spark编写UDF函数案例
  11. Socket、send/recv的循环发送和接收、缓冲区、阻塞
  12. 求二叉树中某结点的父结点(左右孩子表示法)
  13. 计算机网课课堂评价语,网络授课如何“高效”评价学生作业(附实用评语)
  14. 数字c语言代码大全,C语言代码大全
  15. 苹果应用商店反垄断案败诉,市值蒸发500多亿美元;脸书杠上了土耳其政府;Nutanix 扩展多云产品组合……...
  16. 怎么用level2行情接口获取A股数据?
  17. 音标对照表—kk,88
  18. 数据结构与程序设计——C++语言描述(Data Structures Program Design in C++) by Robert L.Kruse Alexander J.Ryb
  19. LEDE 源码下载与编译
  20. 华为路由器交换机命令汇总-持续更新

热门文章

  1. 每天一个小算法(Shell Sort1)
  2. 男性早孕-从软件与程序的区别说起
  3. Jconsole查看Weblogic自定义MBean
  4. 25个优秀的设计机构网站设计案例
  5. 喜讯,Asp.net Ajax 文档提供下载
  6. Diango博客--18.使用 Fabric 自动化部署 Django 项目
  7. python自学网站需要多长时间-怎么自学python,大概要多久?
  8. 深度学习之生成式对抗网络 GAN(Generative Adversarial Networks)
  9. 买电脑主要看什么配置_我的专业要买什么配置电脑可以用到毕业?
  10. MySQL数据库重点概要总结