#define 的问题

O湛狼O 2010-08-02 07:51:16
有的程序中这样
#define test

后面什么都不加,这样有什么用吗?
...全文
241 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningweidong 2010-08-10
  • 打赏
  • 举报
回复
只是说明这个东西定义过了,起到一个开关的作用
peter_bian 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 lovesnow1314 的回复:]

#define test
就是说定义了一个test的宏

代码中比如有一些只需要测试输出的代码段,就可以
#ifdef test
{....}
#endif

如果把#define test 屏蔽
则代码段失效
[/Quote]


就是这样用的,当有很多的
#ifdef test
{....}
#endif
的时候,只要一个简单的#define test语句,就可以屏蔽/打开这些代码
sky253006475 2010-08-09
  • 打赏
  • 举报
回复
#ifdef
#ifndef
#if defined(xxx)
#if !defined(xxx)
可以说一下这些都有什么用,具体做什么吗
arong1234 2010-08-09
  • 打赏
  • 举报
回复
直接用?那if判断的是什么?#ifdef就是判断你是否曾经(#define xxx)的,如果没有这种宏,你的#ifdef没有任何地方可以用
[Quote=引用 5 楼 lijiantao923 的回复:]
为什么不直接#ifdef呢? 还要开关?
[/Quote]
雪域迷影 2010-08-09
  • 打赏
  • 举报
回复
这是属于条件编译,
通常为了防止重复编译问题!
alandingking 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ian_0126 的回复:]

楼上正解。。。
就是标示用的,例如头文件为了避免重复引用。。。就会define一个标示的。。
[/Quote]
嗯,就是标记作用
ctwoz 2010-08-09
  • 打赏
  • 举报
回复
防止重复定义…
lovesnow1314 2010-08-09
  • 打赏
  • 举报
回复
#define test
就是说定义了一个test的宏

代码中比如有一些只需要测试输出的代码段,就可以
#ifdef test
{....}
#endif

如果把#define test 屏蔽
则代码段失效
独酌逸醉 2010-08-09
  • 打赏
  • 举报
回复
我觉得应该为了以后的扩展吧,MFC种宏afx_msg就是为了以后做准备的。
chb1991123 2010-08-09
  • 打赏
  • 举报
回复
防止重复引用的 楼主可以把这句去掉编译一下看看,,,有源码的话
wing_0706 2010-08-08
  • 打赏
  • 举报
回复
#define test 10

------------------
#define test

楼上很多条件编译的 就是防止重复定义啊。。。
你 加了 后面的 和没加 效果是一样的啊。。。。。。。。。。

估计为了省事吧。。。 什么也不加
chin_chen 2010-08-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 lijiantao923 的回复:]
有的程序中这样
#define test

后面什么都不加,这样有什么用吗?
[/Quote]
就是代表这个宏 已经被定义了啊 是多少不重要
lsdsjy 2010-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arong1234 的回复:]

可以给下面的语句使用
#ifdef
#ifndef
#if defined(xxx)
#if !defined(xxx)
[/Quote]
用在头文件 防止重复引用之类的
smallgyy 2010-08-05
  • 打赏
  • 举报
回复
此时在在乎test是否已被定义,在不在乎其值是多少,常用来判断重复编译的问题
Qlaiaqu 2010-08-02
  • 打赏
  • 举报
回复
这是一种用法,有时候宏也表示一种标记,告诉你一些函数或者一些类的特性,或者为了控制整个代码的编译选项,当test不代表任何意思了,这些标记本身,或者配置就没有用了。
wbqpcx 2010-08-02
  • 打赏
  • 举报
回复
6楼正解。
yongziqd 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lijiantao923 的回复:]

为什么不直接#ifdef呢? 还要开关?
[/Quote]一般是#ifndef xxx
#define xxx
...
#endif
O湛狼O 2010-08-02
  • 打赏
  • 举报
回复
为什么不直接#ifdef呢? 还要开关?
wing_0706 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arong1234 的回复:]

可以给下面的语句使用
#ifdef
#ifndef
#if defined(xxx)
#if !defined(xxx)
[/Quote]
+1 标记用的
qq120848369 2010-08-02
  • 打赏
  • 举报
回复
恩,起到一个开关标记作用.
加载更多回复(2)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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