Avviso C6328
Mancata corrispondenza delle dimensioni: 'type' passato come Param(number) quando 'type' è necessario nella chiamata a 'function-name'
Osservazioni:
Questo avviso indica che il tipo richiesto dall'identificatore di formato e il tipo dell'espressione passata non corrispondono. L'uso dell'identificatore di formato errato non è definito. Per correggere l'avviso, assicurarsi che gli identificatori di formato corrispondano ai tipi delle espressioni passate.
Nome dell'analisi del codice: FORMAT_SIZE_MISMATCH
Esempio
#include <cstdio>
void f(long long a)
{
printf("%d\n", a); // C6328 emitted.
}
Esistono diversi modi per correggere il comportamento non definito. È possibile modificare l'identificatore di formato:
#include <cstdio>
void f(long long a)
{
printf("%lld\n", a); // No C6328 emitted.
}
È possibile modificare il tipo di espressione:
#include <cstdio>
void f(int a)
{
printf("%d\n", a); // No C6328 emitted.
}
Come ultima risorsa quando non è possibile eseguire l'overflow, è possibile introdurre un cast:
#include <cstdio>
void f(unsigned char a)
{
printf("%hhd\n", static_cast<signed char>(a)); // No C6328 emitted.
}
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per