OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4381|回复: 0

在头文件中定义驱动版本号的方法

[复制链接]

80

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
406
金钱
406
注册时间
2018-11-20
在线时间
25 小时
发表于 2019-8-1 14:47:54 | 显示全部楼层 |阅读模式
  今天看大神代码时发现他的头文件里的防止重复定义的宏定义是这样子定义的:
  1. <p>  #IFndef ESP8266_CONF_H</p>
  2. <p>  #define ESP8266_CONF_H 020</p>
复制代码

  我看了半天都没看懂为什么这样定义然后就全局搜索发现在另外一个头文件有一个这样的判断:
  #if !defined(ESP8266_CONF_H) || ESP8266_CONF_H != ESP8266_H

  1. <p>  //#error Wrong configuration file!</p>
  2. <p>  #endif</p>
复制代码

  看到这个判断让我想起了之前搞FATFS移植时也有这样使用过,然后我找到FATFS源代码一看果然有,FATFS源代码中头文件宏定义:
  #ifndef FF_DEFINED

  1. <p>  #define FF_DEFINED 86604 /* Revision ID */</p>
  2. <p>  看到这个我略有所思,直到我在另外一个头文件中发现这个判断:</p>
  3. <p>  #if FF_DEFINED != FFCONF_DEF</p>
  4. <p>  #error Wrong configuration file (ffconf.h).</p>
  5. <p>  #endif</p>
复制代码

  我一下子就明白了这样做的用意,这样做就是用来表示程序版本的,如果两个值不匹配就报错,说明这两个文件不属于一个版本。在我们写一些驱动函数时可以也像这样加上版本号。

  高版本linux内核移植
  http://www.makeru.com.cn/live/3483_1570.html?s=45051
  释放潜能:学习效率提升、编程能力提升
  http://www.makeru.com.cn/live/3507_1276.html?s=45051
  概念这么多,我该如何学
  http://www.makeru.com.cn/live/4034_1461.html?s=45051

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表