コメント・テクニック集 & コメント修飾技法【コーディング/プログラミング】


ブロックコメントのトグル・テクニック

ブロックコメントの開始コメントをインラインコメントでコメントアウトすることによって、ブロックコメント自体を無効化するテクニックです。

ブロックコメント有効

/*
int a = 9;
printf("%d", a);
// */

ブロックコメント無効

// /*
int a = 9;
printf("%d", a);
// */

両者の切り替えはテキストエディタのショートカットキーで行えます(Windows: Control + /, Mac: Command + /)。

// /*の代わりに//*を用いる方法もあります。この場合はBack Spaceキーと/キーでトグルします。

スポンサーリンク

複数処理のトグル・テクニック

複数のブロックコメントを切り替えるテクニックもあります。

ブロック A 有効

// /*
void p() { puts("a"); } /// A ///
/*/
void p() { puts("b"); } /// B ///
// */

ブロック B 有効

/*
void p() { puts("a"); } /// A ///
/*/
void p() { puts("b"); } /// B ///
// */

インラインコメント編

ドキュメントコメント

スラッシュを3つ並べる今流行りの記法です。通常のコメントと区別することが出来ます。

// インライン・コメント
/// ドキュメント・コメント

使用例

int main() {
   //printf("Shop 99");
   printf("Hello world");
   /// 成功時
   return 0;
}

強調テクニック

コメントの末尾をコメントで閉じるようにすると、コメントが強調されて目に付きやすくなります。重要なコメントに対して使うと良いです。

// 強調・コメント //

int that() {
   // 初期化 //
   int a = 9;
   // 後処理 //
   return a; /// 必ず0以外の値を返すこと ///
}

トグルテクニック

一文字目を削除するとコメントが解除されます。

//**/ print("デバッグ")/**/ print("デバッグ")

テキストエディタのコメント・トグル機能が使えないような環境(Windowsのメモ帳.exeやLinuxのnanoエディタ等)で活用すると良いでしょう。

ジャンプテクニック

開始括弧と終了括弧が存在しない特殊な文法を利用している際に// {// }という形で仮想的なブロック文を表現します。

#define NAMESPACE_AB_BEGIN(a, b) namespace a { namespace b {

#define NAMESPACE_AB_END(a, b)   }}
NAMESPACE_AB_BEGIN(jp, marycore) // { ← ダブルクリック!
...
100行ほど
...
NAMESPACE_AB_END(jp, marycore)   // }

テキストエディタによっては{をダブルクリックすると終わり括弧}にカーソルが移動したり、選択範囲が広がったりするすることがありますが、本ハックはその機能を活用するためのものです。

スポンサーリンク

ブロックコメント編

強調

/* ブロック・コメント */
/** ドキュメント・ブロックコメント */

おしゃれ

/*/ 初期化 /*/
int i = 99;

/*/ 表示
/*/
print("hello");

ブロックコメントの先頭行を活用

/* 問い合わせ処理
 * @param 最大検索数
 * @return失敗時にnullを返す。
 */

もったいないので使っちゃいましょう。行数も削減できます。

矯正インデント

コード整形機能によってインデントの位置がずれてしまう問題を回避します。

Constraint defaultConstraint =
/**/ ? ConstraintTop
/**/ : ConstraintBottom;

return forward ? window->selectNext()
/**/           : window->selectPrev();

constructor(string str, size_t len)
/**/ : string(str)
/**/ , length(len) {}

ログ関数やアサーション関数の存在感を弱める効果もあります。

void fu(string str, size_t len) {
  /**/assert(str != NULL);
  /**/assert(len >= 0);
  initialize();
  setup(str, len);
}

コードを揃える用途としても活用できます。

const String a = "A";
/* */ String b = "B";

広告

関連するオススメの記事