求助:变量和常量的定义切换,在预处理中如何简单的做到

[复制链接]
 楼主| datouyuan 发表于 2014-10-24 11:05 | 显示全部楼层 |阅读模式
本帖最后由 datouyuan 于 2014-10-24 11:15 编辑

定义了IIC_TYPE_CHK:IIC的驱动模块会检测iic的型号,赋值给变量IIC_type。
未定义IIC_TYPE_CHK:IIC的驱动模块不检测iic的型号,IIC_type为常量。

其它几个模块根据IIC_type确定存储位置,不需要知道IIC_TYPE_CHK是否定义。

  1. enum IIC_TYPE_ {AT24C512,AT24C256,AT24C128,AT24C64,AT24C32,AT24C16,AT24C08,AT24C04,AT24C02,AT24C01};
  2.         #define IIC_SIZE(x)  ( ((x)>AT24C01) ? 0 : (0x10000>>(x)) )        //

  3.         //#define IIC_TYPE_CHK         //是否检查iic型号
  4.         #ifndef IIC_TYPE_CHK
  5.                 //uint8 IIC_type;        //
  6.         #else
  7.                 #define IIC_type AT24C64
  8.         #endif

假如IIC_type定义成常量,所有的模块都不会更改它,只是使用它。
假如IIC_type定义成变量,只有一个模块可能会更改它,其它模块只使用它。

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

本版积分规则

个人签名:maowenyuan@126.com

31

主题

1088

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:maowenyuan@126.com

31

主题

1088

帖子

9

粉丝
快速回复 在线客服 返回列表 返回顶部