Я работаю над встроенным проектом c, и у меня возникают проблемы с переопределением глобальной переменной.
Я разделил объявления и определения функций на несколько файлов .h и .c. Многим из этих функций требуется доступ к глобальным переменным, которые определены в global_vars.h. Следовательно, в начале файлов заголовков, внутри раздела #ifndef, #define, "global_vars.h". Если я этого не сделаю, как вы можете себе представить, я получаю кучу ошибок неопределенных переменных.
Однако, хотя global_vars.h имеет #ifndef _GLOBAL_VARS_H_ #define ... #endif, я получаю ошибки переопределения для всех глобальных переменных. Я предполагаю, что когда компоновщик пытается связать различные объектные файлы, он видит переопределение из-за #include «global_vars.h» во всех файлах «blah_blah.h». Насколько я понимаю, эту проблему решает #ifndef ...
Я что-то не замечаю?
заранее спасибо
global_vars.h
файл должен объявлять все переменные какextern
, а затем фактически определять их в отдельном модуле. Полагаю, ты этого не делаешь? - person Jeff Mercado   schedule 17.06.2011