gpt4 book ai didi

c++ - 我应该如何在 C++ 的类方法中正确使用 __attribute__ ((format (printf, x, y)))?

转载 作者:IT老高 更新时间:2023-10-28 21:46:47 25 4
gpt4 key购买 nike

我正在尝试为调试打印定义一个类方法,其行为类似于 printf:

inline void debug(const char* fmt, ...) __attribute__ ((format (printf, 1, 2)))

当我用 -Wformat-Wall 编译时,这提示:

error: format string argument not a string type

我记得一个类方法声明有一个隐含的this参数,所以我把参数的位置改成了2、3:

inline void debug(const char* fmt, ...) __attribute__ ((format (printf, 2, 3)))

现在它可以编译了,但看起来参数被移动了,好像 this 参数被视为参数列表的一部分。

如何告诉函数 this 不是我要打印的字符串的一部分?

最佳答案

你已经做到了。 this 是参数 1,所以通过说 format(printf, 2, 3) 你告诉编译器你没有打印 this ,您正在打印参数 2 (fmt) 以及其他参数。

关于c++ - 我应该如何在 C++ 的类方法中正确使用 __attribute__ ((format (printf, x, y)))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com