我希望你很好。 我有一个文件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正在寻找某种预处理器魔法。如果是这样:“你不能”。 –