社区
C++ 语言
帖子详情
#define 的问题
O湛狼O
2010-08-02 07:51:16
有的程序中这样
#define test
后面什么都不加,这样有什么用吗?
...全文
241
22
打赏
收藏
#define 的问题
有的程序中这样 #define test 后面什么都不加,这样有什么用吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
172集通俗易懂的C语言从入门到项目实战教程
组指针、函数指针、回调函数)、调试技巧、程序环境和预处理(翻译环境、运行环境、预定义符号、#
define
和#undef、宏和函 数、条件编译、文件包含)、 数据在内存中的存储、内存块分配、static、字符函数和字符串函数、...
#
define
的使用
在很多C程序中,我们会在一个源文件的开头看到#
define
的字眼,和
define
的英文解释相同——可以理解为给xxx下定义,这里可以是标识符甚至是一个函数,接下来的内容将会对#
define
进行详解 1.#
define
定义标识符 使用...
# #
define
以及 # ##解释
文章目录#
define
定义标示符#
define
的语法#
define
定义宏宏的声明方式# 和 ##的作用\#是将字符拼接在字符串中##是将两边的符号连接起来,成为一个符号 #
define
定义标示符 #
define
定义标示符就是将一个名称起一个别名,...
#ifndef/#
define
/#endif使用详解
想必很多人都看过“头文件中的 #ifndef/#
define
/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,...
#
define
用法,C语言#
define
详解
C语言中,可以用 #
define
定义一个标识符来表示一个常量。其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。 预编译又叫预处理。预编译不是编译,而是编译前的处理。这个操作是在...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章