Я зазвичай бачив такий код зазвичай на початку файлів заголовків:
#ifndef HEADERFILE_H
#define HEADERFILE_H
І в кінці файлу є
#endif
Яка мета цього?
#pragma
таке: він активує особливість компілятора. Хоча #pragma once
це дуже широко підтримуються, це нестандартне.
info cpp
або дивіться тут ) сказано, що "вона не розпізнається всіма препроцесорами, тому ви не можете розраховувати на неї в портативній програмі". І GNU cpp оптимізує загальну та портативну #ifndef
ідіому, настільки ж ефективна #pragma once
.
#ifndef HEADERFILE_H
може порушити простір імен реалізації ім'я заголовка, що починається з цього E
; ідентифікатори, що починаються з, E
і цифра або велика літера зарезервована до <errno.h>
. Я пропоную #ifndef H_HEADERFILE
.