Необходимо принять меры предосторожности, порядок предотвратить включение содержимого файла заголовка более одного раза
Необходимо принять меры предосторожности, порядок предотвратить включение содержимого файла заголовка более одного раза.
Когда модуль преобразования содержит сложную иерархию вложенных заголовочных файлов, можно включать конкретный заголовочный файл более одного раза, что приводит к путанице. Если это несколько включений создает несколько или конфликтующих определений, то ваша программа может иметь неопределенное или ошибочное поведение.
Например, предположим, что заголовочный файл содержит:
#ifdef _WIN64 int env_var; #elseif long int env_var; #endif
_WIN64
и другой, который не определяет его, можно иметь противоречивые определения env_var
.Если вы включаете заголовочный файл, содержимое которого не защищено от нескольких включений, анализ вызывает нарушение этой директивы. Нарушение отображается в начале файла заголовка.
Содержимое заголовочного файла можно защитить от нескольких включений с помощью одного из следующих методов:
<start-of-file> #ifndef <control macro> #define <control macro> /* Contents of file */ #endif <end-of-file>
<start-of-file> #ifdef <control macro> #error ... #else #define <control macro> /* Contents of file */ #endif <end-of-file>
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Проект |
Категория: Требуемая |
Категория AGC: Требуется |