C言語のコメントのネストNo.20263
久坊 さん 05/10/27 18:47
 
お世話になります。
現在、C言語でコーディングを行っていますが、コメントをネスト
すると強調表示がされません。
例えば、以下のコードだとvoid sub(void)以下が強調表示されません。
/*
/*
abcd
*/
void sub(void)
{
}
*/
対応方法をお知らせ下さい。
よろしくお願いします。

[ ]
RE:20263 C言語のコメントのネストNo.20267
秀丸担当 さん 05/10/28 09:08
 

>現在、C言語でコーディングを行っていますが、コメントをネスト
>すると強調表示がされません。

C言語のコメントは、ネストできないので、コメントの表示はこれで正しいと思
います。
コンパイルしてみると確認できると思います。

ちなみに/**/も含めてコメントにしたい場合、
#if 0
#endif
で囲むという方法もたまに使います。
この場合、[その他]→[ファイルタイプ別の設定]→[表示とカラー]→[モード]で、
C言語/Javaを選んでさらにプロパティで[#ifdef等のカラー表示]をしておくと、
#if 0〜#endifなどもカラー表示できます。
色はコメントの色ではなく、[表示とカラー]の中の[#ifdef等での無効部分]の色
になります。

[ ]
RE:20267 C言語のコメントのネストNo.20277
久坊 さん 05/10/29 19:56
 
>
>>現在、C言語でコーディングを行っていますが、コメントをネスト
>>すると強調表示がされません。
>
>C言語のコメントは、ネストできないので、コメントの表示はこれで正しいと思
>います。
>コンパイルしてみると確認できると思います。

確かに、通常ではコメントのネストがあるとコンパイルエラーが発生
します。
しかし、多くのコンパイラはコンパイルオプションでコメントのネスト
を許可するオプションを持っており、そのオプションを使用しています。


>
>ちなみに/**/も含めてコメントにしたい場合、
>#if 0
>#endif
>で囲むという方法もたまに使います。
>この場合、[その他]→[ファイルタイプ別の設定]→[表示とカラー]→[モード]で、
>C言語/Javaを選んでさらにプロパティで[#ifdef等のカラー表示]をしておくと、
>#if 0〜#endifなどもカラー表示できます。
>色はコメントの色ではなく、[表示とカラー]の中の[#ifdef等での無効部分]の色
>になります。

確かに「#if 0〜#endif」というやり方もありますね。
購入したソース付のソフトに大きな関数があり、特定の環境しか考慮して
いないコーディングになっていたため、それをコメントにしたところ
色が変わらなかったので、バグかと思い投稿しました。
Cのプリプロセッサを使用して、環境に応じたコンパイルができるように
対処するべきでしょうけど、とりあえずネストになったコメントを、
「#if 0〜#endif」というやり方で対応致します。
どうもありがとうございました。

[ ]
RE:20277 C言語のコメントのネストNo.20278
アルビレオ さん 05/10/29 20:48
 
ユーザーのアルビレオです。

>確かに、通常ではコメントのネストがあるとコンパイルエラーが発生
>します。
>しかし、多くのコンパイラはコンパイルオプションでコメントのネスト
>を許可するオプションを持っており、そのオプションを使用しています。

少なくともいまどきのCコンパイラではコメントのネストがデフォルトで有効に
なっているものはないと思います。
そのオプションは、あくまでそういう「困ったソースコード」をコンパイルする
ための救済措置であって、過去の遺物といってもいいものなので使わないことを
お勧めします。

[ ]
RE:20278 C言語のコメントのネストNo.20281
秀丸担当 さん 05/10/31 10:28
 

>確かに、通常ではコメントのネストがあるとコンパイルエラーが発生
>します。
>しかし、多くのコンパイラはコンパイルオプションでコメントのネスト
>を許可するオプションを持っており、そのオプションを使用しています。

そういうオプションがあったのですか。
VCでは確認できませんでしたが、gccでは他にも//コメントの最後に\を付けて延
長とか、行頭 # の後に空白を空けて ifdef とか、いろいろなパターンがありそ
うです。
可能かどうかなんともいえませんが、今後のバージョンで検討していきたいと思
います。

[ ]
RE:20281 C言語のコメントのネストNo.20284
あべのり さん 05/10/31 11:00
 
>可能かどうかなんともいえませんが、今後のバージョンで検討していきたいと思
>います。
個人的には,個々のコンパイラの対応ではなく,あくまで規格に従った色付けがあり
がたいなと思います.
# つまり,今のままがいいなと.

[ ]
RE:20284 C言語のコメントのネストNo.20286
秀丸担当 さん 05/10/31 12:21
 

>個人的には,個々のコンパイラの対応ではなく,あくまで規格に従った色付けがあり
>がたいなと思います.
># つまり,今のままがいいなと.

もしやるとしたら、ファイルタイプ別の設定で指定できるようになると思います。

ちなみに、プリプロセッサの # はたしか行頭になければいけなかった気がしま
すが、現状でインデントにも対応してしまっています。

[ ]
RE:20286 C言語のコメントのネストNo.20295
あべのり さん 05/11/01 01:06
 
>もしやるとしたら、ファイルタイプ別の設定で指定できるようになると思います。
よろしくお願いします.

>ちなみに、プリプロセッサの # はたしか行頭になければいけなかった気がしま
>すが、現状でインデントにも対応してしまっています。
C++では問題なかったと思うので,悩ましいところです.

[ ]