我在我的項目中使用全局「config.h」來定義啓用/禁用功能的各種標誌。如何防止忘記包含我的「config.h」?
#define ENABLE_FEATURE1 0 // feature is disabled
#define ENABLE_FEATURE2 1 // feature is enabled
在源文件中
後來我測試了他們:我使用的約定定義
#if ENABLE_FEATURE1
// do something
#endif
#if ENABLE_FEATURE2
// do something
#endif
然而,它已經發生了幾次,我忘了,包括在「config.h中」測試這些標誌的cpp文件。然後,我沒有從預處理器中得到任何錯誤或警告,並且程序編譯正常,但編譯器將所有未定義的標誌視爲設置爲零,因此該功能在該cpp文件中被視爲禁用,而它被視爲在其他源文件中啓用。
即使在運行時,其後果並不明顯。