linux环境下调试有关涉及到条件编译的c程序的小用法

条件编译,有三种格式
1 #if 表达式
       程序段1
  #else
       程序段2
 #endif
   很简单,表达式为真编译1,否则编译2。

2 #ifdef 标识符
      程序段1
   #else
      程序段2
   #endif
如果标识符已用#define定义过,则为真编译1,否则编译2

3 和2的基本一致就是把ifdef换成ifndef。用法是为假编译1,否则2

比如#include <stdio.h>
int main()
{
#ifdef _DEBUG
printf("hello world\n");
#else
printf("no debug");
#endif
return 0;
}

在linux用gcc编译是,如果使用gcc -D_DEBUG -o main main.c。则就是说明定义过_DEBUG,运行结果是hello world。注意是-D选项,-D后面紧跟着标识符名字
如果使用:gcc -o main mian.c,怎说明没有定义标识符,运行结果是no debug了。

当然,也可以直接再代码里显示写上一句:#define _DEBUG,也能有相同效果。

posted on 2011-09-14 23:56 古月 阅读(649) 评论(0)  编辑 收藏 引用 所属分类: C/C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章档案

C++/C

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜