#是什么意思? ##是什么意思?

iflytekxglu 2007-09-13 08:45:06
#define DEFINE_SHMOD(mod) struct module_of_##mod { \
\
static const char* getmod() { \
return #mod; }}

上面那是什么意思啊?
...全文
177 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iflytekxglu 2007-09-13
  • 打赏
  • 举报
回复
非常感谢
xiaciping 2007-09-13
  • 打赏
  • 举报
回复
ls正解.
roadtang 2007-09-13
  • 打赏
  • 举报
回复
别喊搞手啦, 其实都不是很难的问题喔
1,
# 是宏处理的 字符串转换符

#define STRING(exp) #exp
那么 STRING(okokokok)就相当于 "okokokok"


2,
## 是标识符拼接符
#define FULL_IDENT(ident) sys_global_##ident
FULL_IDENT(cache) 就等于 sys_global_cache

注意一点
如果
#define FULL_IDENT(ident) sys_global_ident
FULL_IDENT(cache) 就等于 sys_global_ident 应该不是你想要的.


用你的例子
#define DEFINE_SHMOD(mod) struct module_of_##mod { \
\
static const char* getmod() { \
return #mod; }}

这样使用
DEFINE_SHMODE(dxrender)
相当于
struct module_of_dxrender {
static const char * getmod() {
return "dxrender";
}
}

iflytekxglu 2007-09-13
  • 打赏
  • 举报
回复
高手呢
iflytekxglu 2007-09-13
  • 打赏
  • 举报
回复
自己顶

64,647

社区成员

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

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