Jak inni wspomniano wcześniej, to bardzo powszechne konwencja jest użycie wielkiej litery wersję nazwy, a kropkę zastąpiono podkreślenia: Foo.h -> FOO_H
Jednakże, może to prowadzić do kolizji z nazwy proste i/lub popularne nazwy. Z tego powodu, wygenerowany automatycznie nagłówek jak stdafx.h w niepustymi Visual C++ C projektów dołączyć jakiś losowy ciąg znaków, takich jak:
#ifndef FOO_H__NsknZfLkajnTFBpHIhKS
#define FOO_H__NsknZfLkajnTFBpHIhKS
#endif
http://www.random.org/strings/ jest przydatny generator liczb losowych za to.
Ponadto, jeśli plik jest częścią jakiegoś modułem lub jej zawartość znajdują się w jednej konkretnej przestrzeni nazw, staram się dodać, że na straży TOO:
#ifndef SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
#define SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
namespace somecomponent
{
...
}
#endif
Choć nazwa może być mniej lub bardziej intuicyjny, faktem jest, że z trochę doświadczenia, przestań czytać te linie. Oczy i mózgi przyzwyczajają się do '#ifdef blahblah ...' i prawie nigdy nie czytam tego, co jest sprawdzane, to jest strażnik. –
Nieco przydatny punkt widzenia na ten temat: http://stackoverflow.com/questions/1744144/adding-an-include-guard-breaks-the-build/1744302#1744302 –
Każdy, kto zajmuje się rozwojem C++, lepiej przyzwyczaja się do rozpoznawania osłon nagłówka bardzo szybko. ZAWSZE będzie podążał za standardem, który widzisz. "Najlepsza" praktyka (w cudzysłowie, ponieważ jest to wymagane) polega na umieszczeniu najpierw ifndef, zdefiniowaniu zaraz po, i zakończeniu na końcu pliku. Sugeruję, abyś nauczył się rozpoznawać to jak najszybciej. –