如何为预处理器禁用无效代码分析?我们的项目具有一些宏魔术,而Android Studio无法理解。代码变成灰色,不应该在哪里。
#if SOMETHING
// Here code is gray, but it shouldn't be.
#else
....
#endif
这是一个更可靠的例子。它不仅会针对__arch64__
呈灰色显示,还会针对所有体系结构进行项目编译。
#if defined(__x86_64__)
.. // x64 specific
#elif defined(__i386__)
.. // RIP: x86_64 specific
#elif defined(__aarch64__)
.. // etc..
#endif
这个技巧是另一个可靠的例子。我们有unity_build.cpp
个文件,其中包含所有转换单元。每个过渡单元都有预处理器魔术。
#ifndef MYPROJ_UNITY_BUILD
... // Transition unit code.
#endif
在unity_build.cpp
#ifdef MYPROJ_UNITY_BUILD
#undef MYPROJ_UNITY_BUILD
#else
#define MYPROJ_UNITY_BUILD 1
#endif
#include "first-transition-unit.cpp"
#include "second-transition-unit.cpp"
Android Studio在每个过渡单元中将代码显示为灰色。