#define            定义一个预处理宏
#undef            取消宏的定义

#if                   编译预处理中的条件命令,相当于C语法中的if语句
#ifdef              判断某个宏是否被定义,不能或运算,若已定义,执行随后的语句
#ifndef            与#ifdef相反,判断某个宏是否未被定义,不能或运算
#elif                若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if
#else              与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else
#endif             #if, #ifdef, #ifndef这些条件命令的结束标志.
defined          与#if, #elif配合使用,判断某个宏是否被定义

一般使用结构如下:

#define EX_APPENDIX_A

#define EX_APPENDIX_D1

#ifdef EX_APPENDIX_A
            MeasureTimeStart();        
            res[0] = RTA(Smix,n);
            tTmp[0] = MeasureTimeEnd();        

#elif defined EX_APPENDIX_B || defined EX_APPENDIX_D1 //除了加或,还能用与等逻辑符号
            MeasureTimeStart();        
            res[0] = RM(Smix,n,4);
            tTmp[0] = MeasureTimeEnd();    

#else
            MeasureTimeStart();    
            res[0] = RTA(Smix,n,0);
             tTmp[0] = MeasureTimeEnd();

#endif