警告 C6328

サイズの不一致: '' はパラメーター (数値) として渡されました。'' は '関数名' への呼び出しに必要です

解説

この警告は、書式指定子に必要な型と、渡された式の型が一致しないことを示します。 間違った書式指定子の使用は、未定義の動作です。 警告を修正するには、書式指定子が、渡された式の型と一致していることを確認します。

コード分析名: 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.
}

関連項目

C6340