谁能解释一下条件编译,或提供一些相关资料?

ffmm 2001-04-11 03:40:00
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
holyfire 2001-04-12
  • 打赏
  • 举报
回复
这样说吧比如有一段代码
void testif( void )
{
char * str;
#ifdef IF1
str = "IF1";
#else
str = "IF2";
#endif
prinf( STR );
}

你可以这样调用它
#define IF1
testif();
结果是
IF1

#undef IF1
testif();
结果是
IF2

你看控制信息是处在代码中的,并不是在编译器中设置的。
是不是有点明白了。
asdbell 2001-04-12
  • 打赏
  • 举报
回复
编译条件有你来事先定义.
ffmm 2001-04-12
  • 打赏
  • 举报
回复
也就是说如果我想验证这两种不同的结果我必须每次都在源代码中改变我设置的值(加一个#define IF1 或 #undef IF1)?

ffmm 2001-04-11
  • 打赏
  • 举报
回复
总得有什么设置让编译器知道现在该编译什么而不是另外一个。
holyfire 2001-04-11
  • 打赏
  • 举报
回复
就写在代码里面的。这样你可以决定那段代码有效,那段暂时不要。
ffmm 2001-04-11
  • 打赏
  • 举报
回复
在bc中哪里设置?
holyfire 2001-04-11
  • 打赏
  • 举报
回复
条件编译就是在源程序中加入控制信息,然后根据控制信息的条件过滤代码,比如
#ifdef WIN32
//code for WIN32
#else
//code for other
#endif
这是用来区别编译器的条件编译

#ifdef _DEBUG
//code for debug
#else
//code for release
#endif
这是用来区别调试版本和最终版本的条件编译

#ifndef XXXH
#define XXXH
//code
#endif
这是用来避免重复定义的条件编译

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧