Objective-C是否支持#elifdef?

bor*_*den 30 objective-c c-preprocessor

我似乎无法#elifdef在我的iOS项目中工作.如果我这样做:

#ifdef X
const Foo bar[] = { ... };
#else
const Foo bar[] = { ,,, };
#endif
Run Code Online (Sandbox Code Playgroud)

然后顶部的一个(在X下面)突出显示而底部的一个没有突出显示.如果我这样做:

#ifdef W
const Foo bar[] = { ;;; };
#elifdef X
const Foo bar[] = { ... };
#else
const Foo bar[] = { ,,, };
#endif
Run Code Online (Sandbox Code Playgroud)

然后底部的一个(在其他地方)被突出显示而前两个没有.为什么?还有另一种方法我应该这样做吗?我有三个目标,他们都使用相同的m文件.但是,每个目标的常量有点不同,所以我将它们分开.

MBy*_*ByD 82

你可以简单地写:

#elif defined X
Run Code Online (Sandbox Code Playgroud)

哪个应与所有ANSI-C兼容的编译器兼容.

  • 你太年轻了,没有经历过C的*创造*没有人太年轻,无法学习它. (7认同)
  • 而且我现在会吃我的脚,因为我看到你和我的年龄相同...> _ < (6认同)
  • 这不应该是“#elif Defined(X)”以避免潜在的语法问题吗? (2认同)