Для последовательностиКак предотвратить cppcheck (v1.72) предупреждений для% "PRIi64" (% ДНУ) с int64_t переменной (cpcheck считает, что это знаковое целое) из stdint.h
typedef int64_t I64;
I64 i=5;
printf("%"PRIi64",i);
cppcheck дает предупреждение ниже:
предупреждение:% lld в строке формата (№ 1) требует «длинного длинного», но тип аргумента «подписанный int».
Makro PRIi64 разрешен lld, это правильно, но 64-битный целочисленный тип не принят как long long int.
Я надеюсь, что есть способ решить это, потому что мы получаем много таких предупреждений в нашем проекте и больше не видим настоящих ошибок.
Что вы имеете в виду с «посторонней цитатой»? «PRIi64» берется из «inttypes.h» (C99) и обычно требуется для записи 32/64 бит независимого кода, потому что вам нужно% lld на 32 бит и% ld для 64-битных движков для int64_t (stdint.h). –
Да, правильно, но это не имеет никакого отношения к моему реальному вопросу. Здесь более корректно: printf («somthing%» PRIi64 «else», i); –