首页 > 代码库 > #ifdef #endif #if #endif
#ifdef #endif #if #endif
c语言里所有以#开头的都是预编译指令,就是在正式编译之前,让编译器做一些预处理的工作。
#ifdef DEBUG
printf("variable x has value = http://www.mamicode.com/%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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。