Я искал вокруг немного информации для этого, но не нашел ничего удовлетворительного. Есть ли какое-то особое поведение при вызове функцииПочему gcc -Wall предупреждает о строках формата нулевой длины?
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'
это именно то, что я ожидал увидеть. Итак, почему предупреждение?
Я не понимаю, где вы обнаружили, что C++ не ... –
Вы правы, я думал, что это было в первую очередь потому, что я компилировал код с g ++, но теперь я вижу, что gcc дает то же предупреждение. – SirGuy
О, и в случае, если кому-то интересно, я случайно наткнулся на этот код, я сам его не написал – SirGuy