タグ

ブックマーク / www.jpcert.or.jp (1)

  • PRE00-C. 関数形式マクロよりもインライン関数やスタティック関数を使う

    PRE00-C. 関数形式マクロよりもインライン関数やスタティック関数を使う マクロは危険である。物の関数と同じように使えるが、セマンティクスが異なるからである。C99 からは、C 言語仕様にインライン関数が追加されている。インライン関数とマクロのどちらでも使える場合には、インライン関数の方を使うようにすべきである。関数をインライン関数として定義すると、例えば、通常の関数呼出しの仕組みの代わりに インライン置換 が行なわれることで、処理速度の向上も期待できる。(「PRE31-C. 安全でないマクロの引数では副作用を避ける」、「PRE01-C. マクロ定義中で参照する引数名は括弧で囲む」、および「PRE02-C. マクロ置換リストは括弧で囲む」を参照のこと。) インライン置換は、テキストの単なる置き換えではなく、また、新しい関数を作成することもない。例えば、その関数体内で使われるマクロの

    PRE00-C. 関数形式マクロよりもインライン関数やスタティック関数を使う
    gin0606
    gin0606 2014/07/14
  • 1