これは一般的な問題であり、おそらくここでのいくつかの質問に似ているはずですが、私はその中にコメントがある複数の行(むしろメソッド)をコメントアウトする最良の方法を探しています。 SOの投稿はの完全なのようなものを#0のように使うことについての詳細を得ることができませんでした。C++のネストされたコメント
私はこのポストNested comments in Visual C++?をチェックアウトしましたが、私はWindowsプラットフォームではありません。
これは一般的な問題であり、おそらくここでのいくつかの質問に似ているはずですが、私はその中にコメントがある複数の行(むしろメソッド)をコメントアウトする最良の方法を探しています。 SOの投稿はの完全なのようなものを#0のように使うことについての詳細を得ることができませんでした。C++のネストされたコメント
私はこのポストNested comments in Visual C++?をチェックアウトしましたが、私はWindowsプラットフォームではありません。
ほとんど正しいです。基本的にコードのセクションを「if-def」することが提案されています。あなたがしたいのは、プリコンパイラ指令#if
を使用してコードをブロックすることです。以下の例は、ifとendifの間のすべてを無視したいことを示しています。
#if 0
/* Giant comment
it doesn't matter what I put here */
// it will be ignored forever.
#endif
あなたの質問には一般的に答えます。化合物意見を持っている方法は、#if 0
と#endif
間のものは、コンパイラによって無視されます、すなわち
/*
/* */ <--- this closes the first /*
*/ <--- this dangles.
、そこではありません。 (「コンパイラは」もそれを見てみることができます前に、あなたのプリプロセッサは、実際にそれを取り除くかもしれません!)
#if 0
/* 42 is the answer. */
Have you tried jQuery?
@Compiler Stop ignoring me!!
#endif
あなたは#ifdef
の使用する場合は、より良好に制御する必要があります:
// #define DEBUG
#ifdef DEBUG
MyFunction();
std::cout << "DEBUG is defined!";
#endif
// Later in your code...
#ifdef DEBUG
std::cout << "DEBUG is still defined!";
#endif
を
最初の行のコメントを外すと、#ifdef DEBUG
コードが突然コンパイラに表示されます。
P.S.あなたのコンパイラが最後*/
のためにあなたにすべてのエラーを与えていないと仮定すると、出力は"c"
あるべき
/*
cout << "a";
/*
cout << "b";
*/
cout << "c";
*/
:これは、これ以上の混乱をクリアする必要があります。
Visual Studioを使用していると仮定した別のルートには、現在選択されているすべてのコードにコメントを付ける便利なキーボードショートカットがあり、各行の前に//
を追加します。コメントするコメントはCTRL+K
+ CTRL+C
、コメントを外すにはCTRL+K
+ CTRL+U
です。
編集者が提供する手段を使用して、すべての行の先頭に//
を追加します。
例えば、Vimでは、行を視覚的なブロックとしてマークしてから、すべての行の先頭にI//
と挿入することができます。 Visual Studioでは、CTRL-K-C
ショートカットを使用してコードブロックにコメントを付けることができます。
gcc/g ++のコンパイル時にDEBUGを定義することができます。たとえば、デバッグビルドをコンパイルする場合は、 'gcc main.c -DDEBUG'を実行すると、そのコンパイル用にDEBUGが定義されます。これは、ファイル内でDEBUGを静的に定義するよりもはるかに融通性があります。 – Slubb