关于type##_MAGIC是什么意思的问题

xingxing 2003-12-03 08:39:24
type##_MAGIC是什么意思?其中type为一个自己定义的结构。
...全文
94 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
galaxy_fxstar 2003-12-03
  • 打赏
  • 举报
回复
受教了!
abitz 2003-12-03
  • 打赏
  • 举报
回复
boost中的一个例子

#define BOOST_INSTALL_PROPERTY(KIND, NAME) \
template <> struct property_kind<KIND##_##NAME##_t> { \
typedef KIND##_property_tag type; \
}


BOOST_INSTALL_PROPERTY(vertex, all);
被展开成
template <> struct property_kind<vertex_all_t> {\
typedef vertex_property_tag type; \
}
warm_hcb 2003-12-03
  • 打赏
  • 举报
回复
##符号表示将二者连接起来,常用在宏定义当中,

比如定义:
#define PARAM(S, P) ((S)->P##_MAGIC) = 0

那么在使用的时候,
PARAM(structExam, pointerExam1)就表示执行structExam->pointerExam1_MAGIC = 0;
PARAM(structExam, pointerExam2)就表示执行structExam->pointerExam2_MAGIC = 0;
……
好处就像上面的例子,提供了通用的操作。
abitz 2003-12-03
  • 打赏
  • 举报
回复
连接。

#define _MAGIC name

type##_MAGIC 就是type_name

69,336

社区成员

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

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