2014-01-20 3 views
-2

У меня есть большой проект на C++. До сих пор я использую много preproccesor команд для определения переменных, которые управляют типом запуска коды делает ... путем примера У меня есть строка, которая говорит:Правильная структура большого проекта C++

#define Time 1 

что означает код должно время, как долго это займет и т.д. Но так как у меня есть около 10 файлов исходного кода, я должен придерживаться одной из этих строк в каждом файле, а затем менять каждый раз, когда я хочу изменить способ поведения кода. Я пробовал модифицировать его так, чтобы каждый исходный файл включал строку в другой файл, «flags.h», который содержит список bool, который управляет тем, как работает код, но когда я это делаю, я получаю сообщение об ошибке, когда есть дублированные символы в любом месте. Кто-нибудь правит для меня, чтобы реализовать это? Приветствия, Джек

+0

Можете привести небольшой пример того, что даст эту ошибку? –

+0

Кроме того, это то, что вы должны получить, чтобы ваша система сборки делала. –

+1

Определите их через командную строку компилятора. Посмотрите на документацию своего компилятора, чтобы узнать, как это сделать. (Кстати: 10 исходных файлов не считались «большими» в течение многих десятилетий.) – molbdnilo

ответ

1

Вы должны использовать включения охранников вокруг этих флагов. Таким образом:

#ifndef _HEADER_FLAGS_ 
#define _HEADER_FLAGS_ 

/* My flags */ 
#define Time 1 


#endif 
+2

Я сомневаюсь. Имена макросов не являются символами. Но у него, вероятно, есть что-то еще, что дублируется в них. –

+0

Если это устраняет проблему, это не по той причине, о которой вы говорите. Нам нужно увидеть, как их код знает, что здесь происходит. –

+0

Я перешел от использования макросов к использованию C++ bool, как упоминалось в моем вопросе. Я тоже уже использую этих охранников. Приветствия. – JMzance

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