A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑白世界 中级黑马   /  2015-9-25 00:56  /  642 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果我们使用
   if (p1){code1}
   else if(p2){code2}
   else {code3}
这种分支语句的话,无论是否执行,code1、code2、code3 这三个代码块都会被编译。
当我们使用预处理指令的条件编译时,不执行的代码块就不会被编译:
  1. #define NUM 500
  2. int main()
  3. {
  4.     #if(NUM == 500)
  5.         printf("执行了if分支\n");
  6.     #elif(NUM == 100)
  7.         printf("执行了elseif分支\n");
  8.     #else
  9.         printf("执行了else分支\n");
  10.     #endif
  11.     return 0;
  12. }
复制代码
注意:
1.有#if 就必须有#end if
2.条件中不能有变量(因为预处理命令是在编译之前的,变量没有意义),我们需要定义一个宏定义
3.#if define(NUM) 可以判断是否定义了宏NUM ,如果定义了则执行,#if !define(NUM) 这个表示如果没有定义则执行。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马