Надеюсь, вы в порядке. У меня есть файл version.h, содержащийся в 5 файлах.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
Мое предположение заключалось в том, что ОП не хотел менять сценарий из нескольких файлов .c, каждый из которых содержит тот же файл .h. Если OP готов изменить это (как и в вашем ответе), все изменится. Тем не менее, я чувствую, что OP ищет какую-то магию препроцессора. Если так: «вы не можете». –