2015-10-08 7 views
0

У меня есть проект с 3 файлами, и я довольно смущен относительно того, какой правильный порядок включает и какие защитники заголовков необходимы, чтобы избежать проблем с переопределением. Позволяет вызывать файлы a.c, a.h, b.c. b.h, c.c, c.h. Есть функции, которые мне нужны во всех трех файлах, поэтому я не уверен, где их поставить так, чтобы они не вызывали переопределения. a.h является основным файлом - и он включает в себя b.h и c.h. b.h и c.h не включают друг друга. Как это решить? Где добавить атрибуты заголовков и добавить их во весь файл заголовка или только в раздел в файлах заголовков, который существует в других файлах заголовков, которые включают этот? (Я имею в виду - я думаю, что я не должен добавлять защиты заголовков в уникальные части файла заголовка, которые не существуют в файлах заголовка pother, которые его включают).Проблемы с защитой заголовков и проблемы с переустановкой в ​​c

+0

У вас есть дубликаты определений в b.h и c.h? –

+0

«Вопросы, требующие помощи по отладке (« почему этот код не работает? ») Должны включать в себя желаемое поведение ** конкретную проблему или ошибку ** и ** кратчайший код, необходимый для его воспроизведения ** в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям ». – immibis

ответ

0

взгляд вверх включают охранник он идет как

#ifndef A.H 
#define A.H 

"your code" 

#endif 

имени, которое вы выбираете для вашего охранник не имеет значения.

альтернатива, вы можете просто использовать #prama раз

на вершине своей программы он широко поддерживается.

Я бы сказал, что вы должны попытаться понять иерархию включенных заголовков, если сможете. путаница плохая

Смежные вопросы