做C的工程一年多了,使用宏比较多,
宏定义常被用于做常量定义,一个错误代码之类的定义。
这些原来就是这样用的,感受比较大的还是宏控的作用。
由于底层的工程都是分成模块化的,所以使用宏控进行模块的管理,通过宏开关,在编译时可进行模块选择。
还有就是对同一工程, 不同版本的管理,进行编译。
例如:
#ifdef project_1.01 //使用gprs模块
#define gprs_mode = ON
#else if project_1.02 //或者不使用gprs模块
#define gprs_mode =OFF
#endif
大致就是像上面那样,当然还有使用不同的makefile文件,这种情况只有在版本差异很大时,才去新建一个makefile文件。
工作一年了,虽然是在使用C,但都是在windows+模拟器 + VC++6.0开发,代码查看都是使用Source Insight ,当然也常用Source Insight 修改代码。make文件核心还是使用ads来编译。
没搞过linux的编程,虽然知道两种差不多,但对交叉编译等,还是没玩过。希望自己以后能去搞linux下的编程。
附几个常用的宏定义:
//BCD的高低位转换
#define BCD2BIT (((bcd & 0xf0) >> 4) | ((bcd & 0x0f) << 4))