鱼C论坛

 找回密码
 立即注册
查看: 1829|回复: 4

[已解决]这个程序怎么理解?

[复制链接]
发表于 2022-8-8 15:41:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#ifndef MACRO_PARAMS_H
#define MACRO_PARAMS_H

#define PARAM_SET(type, name, qualifier, setqualifier)\
qualifier: type m_##name;\
setqualifier: inline void set##name(type name) {m_##name=name;}

#endif

上面的程序,谁给解释一下,实在看不懂;

中间的##是什么鬼?


还有以上是定义,我看在另一个程序中是这样用的:
PARAM_GET(double, xmin, protected, public);
最佳答案
2022-8-8 18:34:35
这段代码是一个快速创建 getter/setter 的工具
## 操作符的作用是把其前后(两个操作数)经过参数替换之后得到的结果相连来生成一个新的标识符。按此,解释一下调用的含义(调用使用的是 PARAM_GET ,猜测是用来定义 getter 的,而上面的是 PARAM_SET ,不过二者应该非常相似,这里把它们都当成 PARAM_SET )
// PARAM_SET(double, xmin, protected, public);
//  type -> double
//  name -> xmin
//  qualifier -> protected
//  setqualifier -> public
protected: double m_xmin;   // 这里把 m_ 和参数传入的 xmin 连接在了一起生成了 m_xmin
public: inline void setxmin(double xmin){ m_xmin = xmin; }  // 这里类似
在类或结构体里用 PARAM_SET 或 PARAM_GET 就可以“一键生成” getter/setter 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-8 16:55:14 | 显示全部楼层
文件名的后缀不是.c吧,这不是c语法,这是不是.h文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-8 17:17:44 | 显示全部楼层
豆嘉木 发表于 2022-8-8 16:55
文件名的后缀不是.c吧,这不是c语法,这是不是.h文件

是h文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-8 17:34:51 | 显示全部楼层

哈哈,那鱼c估计没人能回答你,因为学这个的人极少,蛮原始的东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-8-8 18:34:35 | 显示全部楼层    本楼为最佳答案   
这段代码是一个快速创建 getter/setter 的工具
## 操作符的作用是把其前后(两个操作数)经过参数替换之后得到的结果相连来生成一个新的标识符。按此,解释一下调用的含义(调用使用的是 PARAM_GET ,猜测是用来定义 getter 的,而上面的是 PARAM_SET ,不过二者应该非常相似,这里把它们都当成 PARAM_SET )
// PARAM_SET(double, xmin, protected, public);
//  type -> double
//  name -> xmin
//  qualifier -> protected
//  setqualifier -> public
protected: double m_xmin;   // 这里把 m_ 和参数传入的 xmin 连接在了一起生成了 m_xmin
public: inline void setxmin(double xmin){ m_xmin = xmin; }  // 这里类似
在类或结构体里用 PARAM_SET 或 PARAM_GET 就可以“一键生成” getter/setter 了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 10:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表