__VA_ARGS__的用法
#include <iostream>#define log(...) printf(__VA_ARGS__)
int main(void)
{
log("放三等奖开放了解到了%d %s %d\n", 15, "abc", __LINE__);
return 0;
}
__VA_ARGS__就是可变参数的宏表达吧? aristan 发表于 2021-1-13 19:41
__VA_ARGS__就是可变参数的宏表达吧?
是的,没错 本帖最后由 小小少年爬山坡 于 2021-1-13 20:20 编辑
你想表达什么? 我给你来个现代点的
template<typename...Args>
void print(const char* fmt, Args&&...args)
{
printf(fmt, std::forward<Args>(args)...);
} 宏函数好像还可以用##连接可变参数,达到这个目的,比如#define xstr(x, y...) xstrfunc((x) , ## y) 本帖最后由 古月不傲 于 2021-1-13 21:03 编辑
aristan 发表于 2021-1-13 20:23
宏函数好像还可以用##连接可变参数,达到这个目的,比如#define xstr(x, y...) xstrfunc((x) , ## y)
是的,嗯
页:
[1]