Я получаю следующее предупреждение при компиляции некоторое наследие C код на Ubuntu кармического, используя GCC 4.4.1предупреждение: «0» флаг игнорируется с точностью и «%» я gnu_printf формат
данное предупреждение:
SRC/filename.c: 385: предупреждение: '0' флаг игнорируется с точностью и '% я' формат gnu_printf
фрагмент, который приводит к тому, предупреждение испускается является:
char buffer[256] ;
long fnum ;
/* some initialization code here ... */
sprintf(buffer, "F%03.3i.DTA", (int)fnum); /* <- warning emitted here */
Я думаю, что понимаю предупреждение, но я хотел бы зарегистрироваться здесь, чтобы убедиться, что я прав, а также (определенный) правильный способ разрешения этого.
Каково ваше понимание? Правильный способ его устранения - это, очевидно, удалить нуль. – 2010-05-28 08:14:56
я понимаю, что существует несовместимость между типом данных и спецификатором формата (это, скорее всего, связано с попыткой форматирования целочисленного значения с точностью). – morpheous
Нет, это действительно так, чтобы иметь точность для интегрального спецификатора. Как указано в man-странице, оно используется для указания минимального количества цифр, используемых для форматирования. –