編譯Ubuntu的業報一些遺留的C代碼時,我得到以下警告,使用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 2010-05-28 08:18:30
不,對於整型說明符有一個精度是有效的。如手冊頁所述,它用於提供用於格式化的最小位數。 – 2010-05-28 08:23:15