
关于ob_define.h文件中宏OC_I5的理解
在学习源码时,看到了这样一个宏:
OZ(ObExprExtraInfoFactory::alloc(allocator, type, copied_info));
点进去发现其定义如下:
#define OZ(func, …) OC_I5(func, OC_I4(VA_ARGS))
其中OC_I5和OC_I4的定义分别为:
#define OC_I5(func, a)
do {
if (OB_SUCC(ret)) {
if (OB_FAIL(func)) {
LOG_WARN("fail to exec "#func,
LST_DO(KK, (,), a));
}
}
} while(0)
#define OC_I4(…) ret, ##VA_ARGS
发现OC_I5的宏就是做一次do模块内的语句,既然是这样为什么要写成do{} while()
而不是直接写成一次?求助各位大佬!
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
关于alloc_assist.h文件中宏的理解
回答 1
一种开发习惯吧,目前确实没啥用,因为还有裸用memset而不是MEMSET的。但如果都用MEMSET而不是memset,那么假如嫌弃memset慢想做一些优化或者诊断功能时,就可以比较方便地通过改宏达
OMS同步ddl报错
回答 1
https://www.oceanbase.com/docs/enterpriseomsdoccn1000000000091334可以参考这个文档社区版OMS参考:https://www.oceanb
社区版4.0.0 怎么升级到4.2.1版本啊?
回答 1
参考这个文档https://www.oceanbase.com/docs/communityobdcn10000000002048170
目录结构一样,ob启动失败
回答 1
截图里明确说了“SLOGanddatafilemustbeonthesamedisk”。官网: 使用命令行部署单机集中式OceanBase数据库OceanBase数据库OceanBase文档
Navicat对oceanbase的视图编辑的时候不兼容
回答 1
工具兼容性问题,navicat操作有问题
observer.log.wf.2023 这些日志是否可以删除,通过哪些途径删除
回答 1
1.设置enablesyslogrecycle20,是否保留日志个数满足需求,如果没有生效,需要将enablesyslogrecycle设置为true2.建议可以通过crontab设置定时任务进行日志
OceanBase是索引组织表还是堆表?
回答 2
已采纳
索引组织表
OBCA证书有效期是多久?
回答 5
终身有效
obd可以忽视一台主机重启吗
回答 1
暂时不支持。因为需要做ssh连通性,这个是已知问题,后续obd版本会优化的。
如何理解OceanBase4.0发布会上的主题“小就是大”?
回答 2
已采纳
更小体积的OB,可以面向更大的市场。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~