タグ

scppとCに関するshmzのブックマーク (1)

  • C FAQ 10

    10.2: 見て見て下の気のきいたマクロ。 #define begin { #define end } どう思う。 A: ゲーッ。17章も参照のこと。 10.3: 二つの値を交換する汎用のマクロは。 A: この質問の確かな解答はない。もしも値が整数なら有名な排他論理和 を使った技を使うことができる。しかし、この技も浮動小数点表示の 数やポインターには使えない(整数の場合も同一の変数を二つの引数 として指定することはできない)。また整数型の"誰でもわかる"極端 に詰め込んだコードa^=b^=a^=bも、副作用が複数回起こることにより 厳密にいえば文法違反である)。もしマクロを任意の型の値に使いた いなら(普通はこれが目的である)、一時変数を使うことはできない。 なぜなら、どの型の一時変数が必要かわからないからである(もし一 時変数が使えたとしても、変数の名前の付けかたに苦労するだろう)。 標

  • 1