>
>
>
V677. Custom declaration of standard ty…


V677. Custom declaration of standard type. Consider using the declaration from system header files instead.

Анализатор обнаружил, что в программе объявляется один из стандартных типов данных. Это избыточный код, который потенциально может привести к ошибкам. Следует использовать системные файлы, где объявлены соответствующие типы.

Рассмотрим пример некорректного объявления типа:

typedef unsigned *PSIZE_T;

Тип PSIZE_T объявлен как указатель на тип 'unsigned'. Такое объявление может привести к проблемам при попытке собрать 64-битное приложение. Программа не скомпилируется или будет вести себя не так, как задумано. В файле "BaseTsd.h" тип PSIZE_T объявлен следующим образом: "typedef ULONG_PTR SIZE_T, *PSIZE_T;". Однако следует не менять объявление типа, а включить соответствующий заголовочный файл.

Корректный код:

#include <BaseTsd.h>

Данная диагностика классифицируется как:

  • CERT-DCL37-C

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V677.