#if和#elif指令 #if指令和if很像,#if后面跟整型常量表达式,如果表达式非零,则表达式为真,此外可以按照if else的形式使用#elif 如:#if还有一种用法可以代替#ifdef,即#if defined (VAR)代替#ifdef VAR #defined是一个预处理运算符(注意不要和#define搞混),如果它的参数是用#define定义过的,返回1,否则...
可用于在一条判断语句中声明多个判别条件,例如: #if defined(VAX) && defined(UNIX) && !defined(DEBUG) #ifdef、#ifndef、#else、#endif #ifdef用于判断某个宏是否定义,和#ifndef功能正好相反,二者仅支持判断单个宏是否已经定义 #ifdef ABC #ifndef ABCD_H #if、#elif、#else、#endif #if可支持同时判断多个...
#elif如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码 #endif结束一个 #if……#else 条件编译块 #error当遇到标准错误时,输出错误消息 #pragma使用标准化方法,向编译器发布特殊的命令到编译器中 预处理器实例 分析下面的实例来理解不同的指令。
\#elifdefined xxx2... \#elifdefined xxx3... \#endif 可以在多个中选择是否有定义. #ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如 \#ifdefined (AAA) && defined (BBB)xxxxxxxxx \#endif\#ifdefined (AAA) || VERSION > 12xxxxxxxxx \#endif 而#ifdef 就不能用上面的用法,...
#ifchoice == 3 ... #elifchoice == 4 ... #else#errorUnsupported choice setting #endif 请注意,如果choice不是#defined,则预处理器会将其视为值为0。 据我所知,应该工作。 你用的是什么编译器? PS:仅供参考,定义名称通常用大写字母书写!
(p)#else#error"Newer version of tcmalloc required"#endif #elifdefined(USE_JEMALLOC)#defineZMALLOC_LIB("jemalloc-"__xstr(JEMALLOC_VERSION_MAJOR)"."__xstr(JEMALLOC_VERSION_MINOR)"."__xstr(JEMALLOC_VERSION_BUGFIX))#include<jemalloc/jemalloc.h>#if(JEMALLOC_VERSION_MAJOR==2&&JEMALLOC_VERSION_...
#elif defined(_WIN32)printf("运行在Windows系统上\n");#else printf("未知系统\n");#endif 这个指令将根据不同的操作系统输出不同的信息。5. #undef指令 #undef指令用于取消已定义的宏。例如:#define PI 3.1415926 #undef PI 这个指令将取消已定义的PI宏。总结 C语言中的预处理指令是一种特殊的指令,...
#ifdefined(VAX) && defined(UNIX) && !defined(DEBUG) #ifdef、#ifndef、#else、#endif #ifdef用于判断某个宏是否定义,和#ifndef功能正好相反,二者仅支持判断单个宏是否已经定义 #ifdefABC// ... codes while definded ABC#elif(VERSION > 2)// ... codes while CODE_VERSION > 2#else// ... remained...
#if, #elif, #defined #ifdef, #ifndef #else #endif 巢状结构 空定义 标头守卫 切割特性 移植性问题 架构图 前言 由于地区翻译关係,有些书籍将macro翻译成"巨集",有些翻译成"宏",为了避免混淆(我自己),所以文章内容会以英文名macro来代替中文译名 甚麽是条件编译 条件编译就是根据已经定义的macro进行选择性...
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 //除了加或,还能用...