随手记录一下一些老忘记的宏…

_WIN64
#define xx(fmt, …) dbg_print(fmt, VA_ARGS) 贼特么好用的…

有时候需要自定义一些fmt的参数, 如果用上面的宏可能会导致多一个 逗号的情况

则可以用如下的

#define LCORE_ID(fmt, ...) printf("LCORE[%hu]"#fmt, rte_lcore_id() __VA_OPT__(,) __VA_ARGS__)

替换列表 可以含有记号序列 __VA_OPT__ ( 内容 ) ,若 __VA_ARGS__ 非空,则它会被 内容 替换,否则不展开成任何内容。

Reference

  1. cppreference.com

C 的 Callback


void(*func)(int a, int b);

C++ 的 Callback


class CXXX {
public:
BOOL target(int a, int b) { return a == b; }
}
int main() {
BOOL(CXXX::*func)(int a, int b);
CXXX obj;
BOOL result = FALSE;
func = &CXXX::target;
result = (obj->*func)(1, 2);
}