Как уже упоминалось ранее, очень распространенным соглашением является использование заглавной версии имени, а точка заменяется подчеркиванием: foo.h -> FOO_H
Однако это может привести к конфликтам именс простыми и / или общими именами.По этой причине автоматически сгенерированный заголовок, такой как stdafx.h, в непустых проектах Visual C C ++ добавляет некоторую случайную строку, например:
#ifndef FOO_H__NsknZfLkajnTFBpHIhKS
#define FOO_H__NsknZfLkajnTFBpHIhKS
#endif
http://www.random.org/strings/ - полезный генератор случайных чисел для этого.
Кроме того, если файл является частью какого-либо подмодуля или его содержимое находится в одном конкретном пространстве имен, я склонен добавить это и к сторожу:
#ifndef SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
#define SOMECOMPONENT_FOO_H__NsknZfLkajnTFBpHIhKS
namespace somecomponent
{
...
}
#endif