Sobes.tech
Junior — Middle

Come si può evitare l'inclusione multipla dello stesso file di intestazione durante il processo di compilazione?

sobes.tech AI

Risposta dell'AI

Чтобы предотвратить многократное включение одного и того же заголовочного файла в C/C++, используют защитные макросы включения (include guards) или директиву #pragma once.

Include guards выглядят так:

#ifndef HEADER_FILE_NAME_H
#define HEADER_FILE_NAME_H

// содержимое заголовочного файла

#endif // HEADER_FILE_NAME_H

При первом включении файла макрос HEADER_FILE_NAME_H не определён, поэтому содержимое подключается и макрос определяется. При последующих включениях условие #ifndef не выполняется, и содержимое пропускается.

Альтернативно, можно использовать:

#pragma once

Эта директива сообщает компилятору включать файл только один раз. Она проще, но не является стандартом C++, хотя поддерживается большинством современных компиляторов.