作者jba (简简单单的幸福)
看板C_and_CPP
标题Re: [问题] #ifdef排版问题
时间Sat Dec 3 17:30:43 2016
※ 引述《jba (简简单单的幸福)》之铭言:
: 请问有没有程式码排版软体,可以将#ifdef做巢状排版,
: 排完後,类似以下格式:
: #ifdef YEAR
: #ifdef MOON
: #ifdef DAY
: Days = YearCnt * MoonCnt * DayCnt;
: #endif
: #endif
: #endif
: 我使用AStyle这套软体版排,排完後会变成这样:
: #ifdef YEAR
: #ifdef MOON
: #ifdef DAY
: Days = YearCnt * MoonCnt * DayCnt;
: #endif
: #endif
: #endif
: 调整AStyle参数,仍然无法排成我想要的格式,有其它软
: 体可以办到吗?请大家提供意见,感谢!
--indent-preproc-block / -xW
Indent preprocessor blocks at bracket level zero, and immediately within a
namespace. There are restrictions on what will be indented. Blocks within
methods, classes, arrays, etc, will not be indented. Blocks containing
brackets or multi-line define statements will not be indented. Without this
option the preprocessor block is not indented.
失败的原因可能是要排版的区段有大括号的关系,例如:
void main(void)
{
#ifdef YEAR
#ifdef MONTH
#ifdef DAY
Days = YearCnt * MoonCnt * DayCnt;
#endif
#endif
#endif
}
提供一个解决方法,在左括号後加上// *INDENT-OFF*和// *INDENT-ON*
void main(void)
{// *INDENT-OFF*
// *INDENT-ON*
#ifdef YEAR
#ifdef MONTH
#ifdef DAY
Days = YearCnt * MoonCnt * DayCnt;
#endif
#endif
#endif
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.26.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1480757445.A.DCB.html