gpt4 book ai didi

c - 没有参数的格式说明符

转载 作者:太空宇宙 更新时间:2023-11-04 02:43:18 25 4
gpt4 key购买 nike

考虑以下代码示例:

#define STRING_LITERAL  "%u, %u"
const char string_const[ ] = "%u, %u";

snprintf(dest_buff, sizeof(dest_buff), STRING_LITERAL, arg1, arg2, arg3);

然后我的编译器发出警告:格式字符串在此参数之前结束

现在,如果我将指令更改为:

snprintf(dest_buff, sizeof(dest_buff), string_const, arg1, arg2, arg3);

然后编译器不会发出警告。

我的问题是:这样的行为是否符合C99标准?

最佳答案

警告由编译器生成,它能够确定您向调用传递了不正确的参数,而在第二个调用中没有。

标准定义传递不正确的参数和/或使用不正确的标志会导致未定义的行为。

警告不是标准所要求的,它只是对程序员的额外帮助。

关于c - 没有参数的格式说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793738/

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