我在网上搜寻了一些关于这个问题的信息,但并没有找到什么满意的答案。这个函数调用有特殊的行为吗?
sprintf(someString, "");
这是为什么在使用gcc和-Wall选项时会出现警告的解释?我只找到了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", "");
不会让编译器报错。 - Nehal J Wani