2012-05-10 2 views
25

Я не могу получить #elifdef для работы в моем проекте iOS. Если я это сделаю:Поддерживает ли Objective-C#elifdef?

#ifdef X 
const Foo bar[] = { ... }; 
#else 
const Foo bar[] = { ,,, }; 
#endif 

Затем верхняя часть (под X) подсвечивается, а нижняя - нет. Если я это сделаю:

#ifdef W 
const Foo bar[] = { ;;; }; 
#elifdef X 
const Foo bar[] = { ... }; 
#else 
const Foo bar[] = { ,,, }; 
#endif 

Затем нижний (внизу) подсвечивается, а верхние два - нет. Зачем? Есть ли другой способ, которым я должен это делать? У меня три цели, и все они используют один и тот же файл. Тем не менее, константы немного различаются для каждой цели, поэтому я их разделяю таким образом.

+4

Я никогда не использовал эту команду перед обработкой; Я всегда использовал '#elif defined (THING)'. – trojanfoe

+0

@trojanfoe Спасибо! Вот так! Я почти ничего не знаю о командах препроцессора, но поиск в google заставил многих людей использовать #elifdef, поэтому я попытался его использовать. – borrrden

ответ

70

Вы можете просто написать:

#elif defined X 

Какой должна быть совместима со всеми ANSI-C совместимые компиляторы.

+0

Отлично! Я слишком молод, чтобы испытать C, поэтому я не знаю о многом из этого материала><. Я также не совсем понял запрос, который должен искать в Google. Это не позволит мне принять ваш ответ в течение 9 минут, но я вернусь. – borrrden

+6

И теперь я буду есть мою ногу, поскольку я вижу, что вы того же возраста, что и я ...> _ < – borrrden

+0

Взгляните сюда: http://en.wikipedia.org/wiki/C_preprocessor – MByD

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