#define 问题

opop_ 2010-06-17 11:49:36
#define CV_SET_FIELDS() \
CV_SEQUENCE_FIELDS() \
CvSetElem* free_elems; \
int active_count;

没见过这种定义啊,
上面这是啥意思啊?还有#define 不是不用“;”结束的吗?
...全文
158 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
beginsoft_nj 2010-06-17
  • 打赏
  • 举报
回复
#define必需一行结束 \是连接符 有时一句太长而用\进行多行连接 美观点
jiaguocong45 2010-06-17
  • 打赏
  • 举报
回复
宏定义
itegel84 2010-06-17
  • 打赏
  • 举报
回复
调用CV_SET_FIELDS()
会依次执行如下语句,没别的,就是文本替换:
CV_SEQUENCE_FIELDS()
CvSetElem* free_elems;
int active_count;
pengzhixi 2010-06-17
  • 打赏
  • 举报
回复
上面是一句分多行写这个就是\的作用,另外;是int active_count这个而不是整个宏的
cwwql 2010-06-17
  • 打赏
  • 举报
回复
\其实就是连接符,把一整句话分成好几行,美观。
KID_coder 2010-06-17
  • 打赏
  • 举报
回复
"\"代表接着下面的代码而已,没别的意思


#include <stdio.h>
void mai\
n()
{
printf("he\
llo!\
\\\f\n");
}


就像这样~~printf出hello!
liutengfeigo 2010-06-17
  • 打赏
  • 举报
回复
大哥,你推荐一本吧
liutengfeigo 2010-06-17
  • 打赏
  • 举报
回复
晕,教材真的没讲
liutengfeigo 2010-06-17
  • 打赏
  • 举报
回复
等待答案
taodm 2010-06-17
  • 打赏
  • 举报
回复
你的教材真没讲宏里的\
那,换本教材吧。
ForestDB 2010-06-17
  • 打赏
  • 举报
回复
对于预处理,推荐命令
gcc -E main.c
cl.exe /E main.c
然后什么都明白了。
x_todoo 2010-06-17
  • 打赏
  • 举报
回复

#define CV_SET_FIELDS() \
CV_SEQUENCE_FIELDS() \
CvSetElem* free_elems; \
int active_count;

//等价于

#define CV_SET_FIELDS() CV_SEQUENCE_FIELDS() CvSetElem* free_elems; int active_count;
healer_kx 2010-06-17
  • 打赏
  • 举报
回复
\ 是不是叫 续行符啊?
悲剧哥 2010-06-17
  • 打赏
  • 举报
回复
如果是C++还是不要用宏了,蛋疼
selooloo 2010-06-17
  • 打赏
  • 举报
回复
CV_SEQUENCE_FIELDS() \ //这个应该是另一个宏
CvSetElem* free_elems; \
int active_count;

这个宏应该是实现几个变量的定义的,
还有#define 不是不用“;”结束的吗?
从来没有这个规定,要看具体用途
koolxiaoyuer 2010-06-17
  • 打赏
  • 举报
回复
学到了
mskmc_mc 2010-06-17
  • 打赏
  • 举报
回复
YUN 百度一下#define
乃不知有汉 2010-06-17
  • 打赏
  • 举报
回复
根据 #define 是以 new_line 结束的 new_line 可以是 \n 也可以是 \r\n
行尾如果不加 \
预处理器 认为 #define CV_SET_FIELDS() 已经是个完整的宏定义
加了的话预处理器就知道当前宏定义还没有结束,会继续读下去直到遇到 new_line 结束符,且前面没 \
有了 \ 就不用把所有的宏定义全写在一行了

65,206

社区成员

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

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