当前位置: 代码迷 >> 单片机 >> 关于define的有关问题
  详细解决方案

关于define的有关问题

热度:65   发布时间:2016-04-28 15:11:01.0
关于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》或网上可以下得到的《华为编码规范》等等相关的书籍
------解决方案--------------------
宏定义一般是为了在更改代码时更加方便,仅更改一个定义就可以了。

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