Kod taki widziałem zwykle na początku plików nagłówkowych:
#ifndef HEADERFILE_H
#define HEADERFILE_H
A na końcu pliku jest
#endif
Jaki jest tego cel?
#pragmajest a : aktywuje funkcję specyficzną dla kompilatora. Chociaż #pragma oncejest bardzo szeroko obsługiwany, jest niestandardowy.
info cpplub spójrz tutaj ) mówi: „nie jest rozpoznawana przez wszystkie preprocesory, więc nie można na niej polegać w przenośnym programie”. A GNU cpp optymalizuje wspólny i przenośny #ifndefidiom, dzięki czemu jest tak samo wydajny jak #pragma once.
#ifndef HEADERFILE_Hmoże naruszać przestrzeń nazw implementacji nazwy nagłówka zaczyna się od E; identyfikatory zaczynające się od Eoraz cyfra lub duża litera są zastrzeżone dla <errno.h>. Sugeruję #ifndef H_HEADERFILE.