浅谈#define预编译指令在J2ME项目管理中的作用
作者:裕作
(本文为原创,转贴请注明出处:http://blog.csdn.net/KyosukeNo1)
#define对C程序员来说并不是什么新鲜的东西,大多数程序员甚至会脱口而出:不就是宏吗?对,#define确实可以用作宏,减少代码的行数及增加代码的可读性。然而,#define的用途并不仅仅如此:把#define和#ifdef,#endif等预编译指令混合使用后,会大大增强工程的灵活性。
在进入讨论之前,我们先看看相关指令的列表及其各自的作用:
#define DEF_A - 定义DEF_A,使其存在(但并没有特定值)
#define DEF_A 22 - 定义DEF_A,使其值为22
#undef DEF_A - 取消DEF_A的定义
#if DEF_A - 如果DEF_A的条件满足,则编译以下代码
#ifdef DEF_A - 相当于#if defined DEF_A。如果定义了DEF_A,则编译以下代码
#ifndef DEF_A - 如果没有定义DEF_A,则编译以下代码
#if defined DEF_A | defined DEF_B | defined DEF_C
- 如果一定了DEF_A或DEF_B或DEF_C,则编译以下代码
#elif DEF_B - 如果定义了DEF_B,则编译以下代码
#else - 如果以上的if语句都不满足,则编译以下代码
#endif - 一个定义块的结束标志
说到这里,也许有人会提出异议了: