码迷,mamicode.com
首页 > 其他好文 > 详细

#ifdef #endif #if #endif

时间:2014-05-22 04:37:10      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:style   class   c   ext   a   int   

c语言里所有以#开头的都是预编译指令,就是在正式编译之前,让编译器做一些预处理的工作。

 

  #ifdef DEBUG

    printf("variable x has value = %d\n",x);

  #endif


#if和#endif是配对的,叫做条件编译指令,如果满足#if后面的条件,就编译#if和#endif之间的程序段,否则不编译。
比如这段程序,如果常量OS_CRITICAL_METHOD的值为3就编译下面的一条语句

#ifdef 和 #if 效果是一样的,但是当你要判断复杂的条件时,只能用 #if

#define BASIC_DEBUG 1
#define EXTRA_DEBUG 2
#define SUPER_DEBUG 4

#if (DEBUG & EXTRA_DEBUG)
printf...
#endif
当DEBUG = 0时,禁止所有调试信息,当DEBUG = 5时将启用BASIC_DEBUG和SUPER_DEBUG,但不包括EXTRA_DEBUG.

另外也可在程序中添加如下语句。这样,当不需要调试时,就不必在命令行上定义DEBUG宏:
#ifndef DEBUG
#define DEBUG 0
#endif

#ifdef #endif #if #endif,布布扣,bubuko.com

#ifdef #endif #if #endif

标签:style   class   c   ext   a   int   

原文地址:http://www.cnblogs.com/cj2014/p/3738420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!