在使用 CodeBlocks 進行 C/C++ 開發時,若遇到編譯警告 warning: int format, float arg (arg 2),這表示格式化字串與實際參數類型不匹配。具體來說,程式碼中使用 %d 格式化輸出,但對應的實際參數卻是 float 或 double 類型。
printf 系列函數依賴格式化字串中的佔位符(如 %d、%f、%ld)來解讀對應的參數。當佔位符期望整數(%d、%ld)卻傳入浮點數時,編譯器會發出此警告,提示可能存在未定義行為或輸出錯誤。
long 或 long int,請使用 %ld 替代 %d。float/double),應改用 %f、%lf 或 %g 等浮點格式化佔位符。-Wall -Wextra),並在編碼階段即修正此類類型不匹配問題。養成「格式化字串與參數類型嚴格對應」的習慣,可有效避免執行期崩潰或輸出亂碼。現代 IDE 通常提供即時靜態分析,善用此功能可提前發現類似問題。