首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

关于define的有关问题

2013-11-29 
关于define的问题问下我在看资料的时候看到一条语句是这么写的:#define SI32_RTC_B_CONFIG_RUN_START_U32

关于define的问题
问下我在看资料的时候看到一条语句是这么写的:
#define SI32_RTC_B_CONFIG_RUN_START_U32 \
   (SI32_RTC_B_CONFIG_RUN_START_VALUE << SI32_RTC_B_CONFIG_RUN_SHIFT)
其中:#define SI32_RTC_B_CONFIG_RUN_START_VALUE  1
      #define SI32_RTC_B_CONFIG_RUN_SHIFT  1
我想请问下一般这么些有什么用?我觉得没有任何作用啊,还不如写成:
#define SI32_RTC_B_CONFIG_RUN_START_U32  1;
[解决办法]
编码规则上有一个叫可读性的东西。

其实这两种写法,如果都正确的话,那么在编译器的处理来看,都是一样的

立即数在可读性这个方面有一个专称:魔数。

大概意思是,数字本身并不能直接表达作者的意图,让读代码的人不能很好的理解作者意图

为了增加可读性,在不损失代码性能的情况下,尽量用宏,用常量,用变量名

更深层次的LZ可以看一下《代码大全2》或网上可以下得到的《华为编码规范》等等相关的书籍
[解决办法]
宏定义一般是为了在更改代码时更加方便,仅更改一个定义就可以了。

你所说的这些定义,值是可能更改的。当你在调试中要频繁地改变这些值的时候,就体会到他这样写的用意了。
[解决办法]
为了方便可读性及可移植性 
[解决办法]
为了方便移植和统一修改

热点排行