Когда мне платят за мое время, а стандарт компании еще не существует, я использую:
#ifndef path_to_file_h
#define path_to_file_h
Причина в том, что строчные буквы проще копировать и вставлять в имена файлов и заменять косые черты подчеркиванием. Причина #ifndef в том, что он хорошо сочетается с #define, что упрощает понимание того, что символы одинаковы. Мне нравится идея GUID, поэтому я могу попробовать ее.
Когда мне не платят за мое время и я не выпускаю свой код на волю, я просто использую #pragma once
. В отличие от большинства других проблем с переносимостью, добавить защиту для включения так же просто, как и сейчас, и это может сделать кто-то, кто ничего не знает о базе кода (например, я через год или какой-то невинный программист, которому я отправляю свой код) Таким образом, применяется ЯГНИ.