当前位置: 代码迷 >> C语言 >> 请教个关于define的问题
  详细解决方案

请教个关于define的问题

热度:307   发布时间:2007-08-28 12:17:03.0
请教个关于define的问题
我在http://yzfy.org/发现每个函数的前面都有#define PB_ID 1
#define CP_GCC 是什么意思啊,难道是dev-c++里面c程序开始的定义必须这样?
搜索更多相关的解决方案: define  

----------------解决方案--------------------------------------------------------
晕。。。。那是我的测评系统的需要而已,你自己的代码可以不写的
有问题请看答题必读


by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

请大家不要用TC来学习C语言
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
----------------解决方案--------------------------------------------------------
产生误导~~~~~
----------------解决方案--------------------------------------------------------
以下是引用雨中飞燕在2007-8-28 12:50:48的发言:
晕。。。。那是我的测评系统的需要而已,你自己的代码可以不写的
有问题请看答题必读


by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

请大家不要用TC来学习C语言
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]

你的域名收费么?


----------------解决方案--------------------------------------------------------

楼上跑题了。

宏定义是根据不同程序的需求而定义的,我举个例子,比如说我有个函数需要调试
void foo()
{
char s[80]; /* 我这里定义了个数组s */
.
.
. /* 经过若干步骤,s的值改变了 */
printf("%s\n",s); /* 这里我要检查s的改变,是否符合我最初的目的,而这段语句并不希望出现在发布后的程序中,可作为调试部分语句 */
}
于是,我想到了使用一个宏来表示应用程序是否出于调试状态
#define _DEBUG_
那么如下的函数改写成
void foo()
{
char s[80];
.
.
.
#ifdef _DEBUG_ /* 若_DEBUG_这个符号被定义,即调试状态,则编译以下语句 */
printf("%s\n", s);
#endif
}
如果你把#define _DEBUG_这一行注释掉,编译的时候不会将printf语句编译进去了,也就是发布版本不会出现有输出的情况,如下
void foo()
{
char s[80];
.
.
.
} /* 去掉_DEBUG_编译的是这样一个情况 */


----------------解决方案--------------------------------------------------------
看来楼上不明白楼主的意思呢~~~~~~~~~~~



by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
----------------解决方案--------------------------------------------------------
  相关解决方案