gpt4 book ai didi

c - 如何在 C 中将变量参数默认设置为空?

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:19 24 4
gpt4 key购买 nike

我有一个这样的宏。

#define TRACE(fmt, ...) trace(__FILE__, __FUNCTION__, fmt, __VA_ARGS__);

但有时我不想提供格式字符串。像 TRACE() 这样的事情应该做。现在,我使用

TRACE("%s", "") 

有什么办法可以简化吗?

最佳答案

怎么样?

#define TRACE(...) trace(__FILE__, __FUNCTION__, __VA_ARGS__)


TRACE("");

... 省略号必须替换至少一个参数,因此如果您使用 TRACE(fmt, ...) 形式,您不能使用单个参数在调用 TRACE 时。

因此,TRACE(...) 形式通常优于 TRACE(fmt, ...) 形式。

另请注意,我在您的宏定义中删除了 ;。在定义中包含它是一种不好的做法, ; 必须放在宏调用之后。如果您需要更多信息,请参阅此 CERT 文档:PRE11-C. Do not conclude macro definitions with a semicolon

关于c - 如何在 C 中将变量参数默认设置为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17434112/

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