C语言条件编译(DEBUG思想)

条件编译(DEBUG思想)2016年7月28日 星期四17:31

#include <stdio.h>

#define DEBUG 0

int main(int argc, const char * argv[]) {

   

#if DEBUG == 1

    char *name = "lxc";

    char *pwd  = "123";

#else

    char *name = NULL;

    char *pwd = NULL;

#endif

    printf("name = %s\n pwd = %s\n",name,pwd);

//    name = (null)

//    pwd = (null)

    return 0;

    /**

     预处理指令什么时候执行? 编译之前

     变量什么时候定义? 执行了才会定义

     注意点:

     1.条件编译不能用来判断变量,因为不在同一个声明周期

     2.一般情况下,条件编译和宏定义是结合在一起使用的

     

     条件编译和选择结构if的共同点

     都可以对给定的条件进行判断,添加满足或者不满足都可以执行特定的代码

     

     条件编译和选择结构if的不同点

     1.声明周期不同

     if 是运行时执行

     #if 是编译之前

     2.#if需要一个明确的结束符号 #endif

     3.if会将所有的代码都编译到二进制中

     #if只会将满足条件的部分编译到二进制中

     

     条件编译的优点

     1.缩小应用程序的大小

     

     应用场景

     用于调试和发布阶段进行测试

     */

}

#ifdef SCORE // 判断是否定义了后面的宏

    printf("SCORE \n");

#endif

 

#ifndef SCORE //是不是没有定义后面的宏

    printf(" NO SCORE \n");

#endif

头文件卫士

在文件.h中为了防止被多次引入C语言中创建.h文件的时候系统会默认生成一个头文件卫视

#ifndef bb_h

#define bb_h

 

#endif

posted @ 2016-07-29 14:02  偷吃的喵  阅读(1019)  评论(0编辑  收藏  举报