Ceph源码之 common/config.*
Ceph源码之 common/config.*
ali安东尼 发表于3个月前
Ceph源码之 common/config.*
  • 发表于 3个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

今天在研究ceph时,看到一个初始化成员变量的技巧。 如果一个class中有成百上千个成员变量,有没有觉得当写类头文件都写到手痛,还要在构造函数里初始化它们,简直不敢再想下去了。 像下图这样,这只是头文件: 输入图片说明

输入图片说明

输入图片说明

初始化全局数组config_optionsp时,每个config_option元素记录着md_config_t里的一个成员变量的名字,类型和偏移,如上图中的编号4小图。主要用的是stddef.h里的offsetof计算成员变量在class里的偏移值。 当调用get时进入到上图中小图1的函数,先找根据成员变量的名字找出config_option对象,再如小图2调用config_option的conf_ptr(小图3),其中md_conf_off是该成员变量在md_config_t类中的偏移量。这样就能直接存取成员变量,而且运行效率更高,同时又降低了开发的工作量,代码也更美观!

由睿江云提供,想了解更多,请登陆www.eflycloud.com

共有 人打赏支持
粉丝 0
博文 187
码字总数 166991
×
ali安东尼
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: