Правила программирования на Си и Си++

       

Используйте вложенные директивы #include


Хотя большинство из правил в этой главе говорят вам, как избежать использования препроцессора, механизм включения файлов директивой #include

является обязательной функцией препроцессора как в Си, так и в Си++. Тем не менее, даже здесь существуют проблемы.

Это на самом деле плохая идея - требовать, чтобы кто-нибудь включал файл, способный включать в себя следующий. Я всегда располагаю директивы #include без определенного порядка или забываю вставить одну из них. Следовательно, заголовочный файл должен всегда включать те файлы, которые определяют то, что используется в текущем заголовочном файле. Вследствие того, что могут возникнуть проблемы, если компилятор прочитает какой-нибудь .h

файл более одного раза, вы должны предпринять шаги для предотвращения многократной обработки одного и того же файла. Помещайте строки типа:

#ifndef FILENAME_H_

#define FILENAME_H_

в начале каждого заголовочного файла, и вставляйте соответственно:

#endif // FILENAME_H_

в конце. Так как константа FILENAME_H_

будет уже определена к моменту второй попытки препроцессора обработать этот файл, то его содержание при втором проходе будет проигнорировано.




Содержание раздела