我希望你很好。 我有一個文件version.h包含在5 files.c中。 我編譯時有5個警告:如何避免來自gcc的多重警告,當我在.h中使用預處理#警告
version.h中:10:2:警告: - SUB_VERSION2
version.h中:10:2:警告: - SUB_VERSION2
version.h中:10 :2:警告: - SUB_VERSION2
version.h中:10:2:警告: - SUB_VERSION2
version.h中:10:2:警告: - SUB_VERSION2
,我只想有一個警告。我在一些網站上查找了一段時間,我對這個問題一無所知。如何避免這個問題?
這是我的.h和我的.c是隨機的:
#ifndef _VERSION_H
#define _VERSION_H
#define SUB_VERSION 1
#define SUB_VERSION SUB_VERSION2
#if (SUB_VERSION == SUB_VERSION2)
#ifndef WARNING_SUB_VERSION
#define WARNING_SUB_VERSION
#warning -- SUB_VERSION2
#endif
#endif
#endif
#endif
你的診斷看起來肯定是正確的,但是「你不能」的結論必須依賴於一些沒有說明的關於應該考慮哪種解決方案的假設。 –
感謝您的回饋。你有任何建議來解決我的問題嗎? – ruxob
我的假設是OP不想改變多個.c文件的情況,每個文件都包含相同的.h文件。如果OP準備改變(如在你的答案中),那麼事情就會改變。但是,我感覺OP正在尋找某種預處理器魔法。如果是這樣:「你不能」。 –