[xyzzy:06883] c-mode のインデント
- Subject: [xyzzy:06883] c-mode のインデント
- From: Nao Wada MGII <nao_wada@xxxxxxxxxxxx>
- X-mailer: Mobile Gear [2.20]
なお@なごや です。
c-modeにおいて、プリプロセッサ文の直後のインデントが不自然になることがあります。
下のような条件の場合、TYPE1のように、ifがforと同じ位置にくるのが(私としては)理想
なのですが、TYPE2以後のように、#が行頭にないばあい、プリプロセッサ文直後とそれ以後
でインデント位置が変わってしまいます。
#こういう書き方が文法的に許されるのか、ちょっと疑問なのですが手元のCの入門書
#には「#は行頭になければならない」という文はみつかりませんでしたし、コンパイル
#も通っています
void func(void)
{
char a,b;
#ifdef TYPE1
if(a==b)
;
for(;;)
{
;
}
#endif
;
#ifndef TYPE2
if(a==b)
;
for(;;)
{
;
}
#endif
;
for(;;)
{
#if TYPE3==TYPE2
if(a==b)
;
for(;;)
{
;
}
#endif
}
;
#define AAA bbb
if(a==b)
;
for(;;)
{
;
}
;
}
--
Nao Wada @ Mobile (Powerd by Windows CE 2.11)
nao_wada@xxxxxxxxxxxx
#xyzzyのバージョンは0.2.1.195です。