【发布时间】:2012-03-29 13:47:07
【问题描述】:
我搜索了一些有关这方面的信息,但没有找到任何令人满意的信息。函数调用是否有一些特殊行为
sprintf(someString, "");
这解释了为什么这是警告(在带有 -Wall 的 gcc 上)?我只是设法发现 C 标准允许零长度格式字符串。
我尝试了以下示例
#include <stdio.h>
int main()
{
char str[2] = {'a', 'a'};
sprintf(str, "");
printf("\'%c\'\'%c\'\n", str[0], str[1]);
return 0;
}
打印出来
'''a'
这正是我期望看到的。 那么,为什么会出现警告?
【问题讨论】:
-
sprintf(str, "%s", "");不会让编译器哭泣。
标签: c gcc string-formatting printf gcc-warning