摄影师 网站 模板,郑州网站建设公司制作定制,装修设计方案,沈阳市建设局网站首页#ifdef的用法 灵活使用#ifdef指示符#xff0c;我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。 代码举例#xff1a;新建define.cpp文件 #xff03;include iostream.h int main() { #ifdef DEBUG cout Beginning ex… #ifdef的用法 灵活使用#ifdef指示符我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。 代码举例新建define.cpp文件 include iostream.h int main() { #ifdef DEBUG cout Beginning execution of main(); #endif return 0; } 运行结果为Press any key to continue 改写代码如下 include iostream.h #define DEBUG int main() { #ifdef DEBUG cout Beginning execution of main(); #endif return 0; } 运行结果为Beginning execution of main() Press any key to continue 更一般的情况是#define语句是包含在一个特定的头文件中。 比如新建头文件head.h在文件中加入代码 #ifndef DEBUG #define DEBUG #endif 而在define.cpp源文件中代码修改如下 include iostream.h include head.h int main(){ #ifdef DEBUG cout Beginning execution of main(); #endif return 0; } 运行结果如下Beginning execution of main() Press any key to continue 结论通过使用#ifdef指示符我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码 #if, #ifdef, #ifndef, #else, #elif, #endif的用法 这些命令可以让编译器进行简单的逻辑控制当一个文件被编译时你可以用这些命令去决定某些代码的去留 这些命令式条件编译的命令。 常见的条件编译的三种形式 ①第一种形式 #if defined(或者是ifdef)标识符(条件) 程序段1 #endif ②第二种形式 #if !defined(或者是ifndef)标识符(条件) 程序段1 #ifdef … [#elif … ] [#elif …] #else … #endif 示例 #include iostream using namespace std; int main() { #if DEBUG /*或者是#ifdef DEBUG*/ cout 条件成立DEBUG已经定义了 endl; #else cout 条件不成立DEBUG还没定义 endl; #endif return 0; } //结果输出 条件不成立DEBUG还没定义 //如果是添加了#define DEBUG ,输出结果是条件成立DEBUG已经定义了 #include iostream using namespace std; #define DEBUG int main() { #ifdef DEBUG /*或者是#ifdef DEBUG*/ cout 条件成立DEBUG已经定义了 endl; #else cout 条件不成立DEBUG还没定义 endl; #endif return 0; } //要注意的是如果是#define 宏名没有宏体如 #define DEBUG就必须使用#ifdef或#ifndef与之对应 //如果是#define 宏名 宏体如 #define NUM 1,#if 和#ifdef都可以使用。 /* #define的用法 */ 示例二 #include iostream using namespace std; #define NUM 10 int main() { #ifndef NUM cout NUM没有定义endl; #elif NUM 100 cout NUM 100 endl; #elif NUM 100 NUM 10 cout 10 NUM 100 endl; #elif NUM 10 cout NUM 10 endl; #else cout NUM 10 endl; #endif return 0; } //输出NUM 10 也可以在mk文件定义NUM ifeq ($(BOARD_SCREENRECORD_LANDSCAPE_ONLY),true) LOCAL_CFLAGS -DNUM endif