我无法使emacs正确缩进以下代码。不知何故,它无法正确解析预处理器宏。任何建议将不胜感激。
#ifdef WIN32
void func1()
#else
void func1(int parameter)
#endif
{
if (a > 2 ||
#ifdef WIN32
(b < 3))
#else
(b > 3))
#endif
c = 1;
else if (b > 2 ||
#ifdef WIN32
(a > 4))
#else
(a < 4))
#endif
c = 2;
mystatement;
}
答案 0 :(得分:1)
问题在于Emacs将解析#if
#else
构造的两个部分。要获得正确的缩进,您必须确保没有不平衡的括号或大括号。具体来说,您可以重写以下内容:
if (a > 2 ||
#ifdef WIN32
(b < 3))
#else
(b > 3))
#endif
分为:
if (a > 2 ||
#ifdef WIN32
(b < 3)
#else
(b > 3)
#endif
)