У меня есть заголовочный файл x.h, который включен более чем одним * .c исходным файлом. Этот заголовочный файл имеет определенные структурные переменные.Почему мои компиляторы не предотвращают множественные включения?
Я поставил несколько предотвращения включения охранника в начале заголовка файла, как:
#ifndef X_H
#define X_H
...
..
//header file declarations and definitons.
#endif//X_H
На здании я получаю ошибки компоновщика, связанные с несколькими определениями. Я понимаю проблему.
не будет кратен включение профилактики охранником в верхней части заголовка файла, как я, предотвратить множественные включения заголовочного файла x.h и тем самым избежать многократных определений переменных, которые существуют в x.h?
#pragma
один раз не работает над этим конкретным компилятором, так что же такое решение? Кто-то отправил this ответ на аналогичный вопрос. Кажется, это не работает для меня. Как это решение работает?
@ Stephen: Если вы уже редактируете заголовок вопроса, пожалуйста, также взгляните на тело (и, возможно, на теги, хотя и не здесь). Это позволяет избежать дублирования редактирования (и удара). – 2011-08-23 18:18:36
@Paulo Пропустил это, я пытался следить за ним, хотя, спасибо за напоминание! – Stephen 2011-08-23 18:22:21