경고 C6328
크기 불일치: '형식'은 '함수 이름'를 호출할 때 '형식'이 필요한 경우Param(숫자)로 전달됨
이 경고는 형식 지정자에 필요한 형식과 전달된 식의 형식이 일치하지 않음을 나타냅니다. 잘못된 형식 지정자를 사용하는 것은 정의되지 않은 동작입니다. 경고를 수정하려면 형식 지정자가 전달된 식 형식과 일치하는지 확인합니다.
코드 분석 이름: FORMAT_SIZE_MISMATCH
#include <cstdio>
void f(long long a)
{
printf("%d\n", a); // C6328 emitted.
}
정의되지 않은 동작을 수정하는 방법에는 여러 가지가 있습니다. 형식 지정자를 변경할 수 있습니다.
#include <cstdio>
void f(long long a)
{
printf("%lld\n", a); // No C6328 emitted.
}
식 형식을 변경할 수 있습니다.
#include <cstdio>
void f(int a)
{
printf("%d\n", a); // No C6328 emitted.
}
오버플로가 발생할 수 없는 경우 최후의 수단으로 캐스트를 도입할 수 있습니다.
#include <cstdio>
void f(unsigned char a)
{
printf("%hhd\n", static_cast<signed char>(a)); // No C6328 emitted.
}