首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Visual Studio 中 printf 格式佔位符錯誤導致編譯警告

     編輯:程式設計綜合問答

問題描述

在 Visual Studio 中使用 C 語言時,printf 格式字符串使用 %d 對應字符串變量,導致類型不匹配警告甚至運行時輸出異常。

錯誤示例

char *str = "Hello";
printf("%d", str); // 錯誤:%d 期望 int,實際傳入 char*

正確用法

char *str = "Hello";
printf("%s", str); // 正確:%s 對應字符串

常見格式佔位符對照表

佔位符對應類型示例
%d / %i有符號整數printf("%d", 42);
%u無符號整數printf("%u", 42u);
%f單精度浮點數printf("%.2f", 3.14f);
%lf雙精度浮點數printf("%.2lf", 3.14);
%c單個字符printf("%c", 'A');
%s字符串 (char*)printf("%s", "Hello");
%p指針地址printf("%p", (void*)ptr);

編譯器提示

Visual Studio 會在編譯階段給出 warning C4477 或 C4047,運行時可能打印垃圾值或崩潰。建議開啟 /W4 警告等級並視警告為錯誤 (/WX)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved