如何让 Xcode 考虑我的定义值以正确折叠我的代码?Xcode 似乎将某些未编译为代码的一部分的东西考虑在内——这对我来说会引起一些问题:(
例子:
#include <stdio.h>
#define LIE_TO_THE_USER 1
void foobar(int argc)
{ // A
#if LIE_TO_THE_USER
if (0) { // B
#else
if (argc > 0) { // C
#endif
printf("argc is greater than 0\n");
} // D
else
{ // E
printf("argc is not greater than 0\n");
} // F
} // G
int main(int argc, const char * argv[])
{
foobar(argc);
return 0;
}
这段代码可以编译......但使用起来很痛苦。
就 Xcode 而言,它将括号 C 和 D 折叠在一起,E 和 F 折叠在一起,并将 C 和 G 折叠在一起(而不是折叠 A 和 G)。此外,在这种情况下#if #else #endif
(所以只是main
这种情况)之后声明的任何内容都不会出现。
在 Visual Studio 中,它只会变灰if (argc> 0 ) { // C
并忽略它。但 Xcode 似乎将其视为代码的一部分。我找到了 2 个解决方法:
void foobar(int argc)
{
#if LIE_TO_THE_USER
if (0)
#else
if (argc > 0)
#endif
{
printf("argc is greater than 0\n");
}
else
{
printf("argc is not greater than 0\n");
}
}
/// OR
void foobar(int argc)
{
#if LIE_TO_THE_USER
if (0) {
#else
if (argc > 0) {
#endif
printf("argc is greater than 0\n");
}
else
{
printf("argc is not greater than 0\n");
}
#if 0
}
#endif
}
但是,这个问题在我的项目中非常常见。所以我想找到自动解决这个问题而不必担心添加变通办法。有谁知道一种方法来配置 Xcode 以忽略诸如if (argc > 0) {
?
提前致谢 :)