2011-10-22から1日間の記事一覧

カンマ・オペレータ

C

これは使えそう。 Comma operator - Wikipedia x = (a, b); y = (a, b, c); っていう処理があった場合、xにはaの処理をした後にbがxに代入される。 同じくyには、aとbの処理がされた後にcがyに代入される。 int x; int a=0, b=1, c=2; x = (printf("a=%d \n"…

マクロをdo-while(0)で囲むワケ

C

こんな感じで書かれたマクロを見ることがある。 #define SWAP(x, y) do { int temp = x; x = y; y = temp; } while(0) do-while(0)で囲んでいるのは、ブロックで囲まれていないif文での意図しない動作を防ぐため。 例えば、以下の場合に有効。 /* do-while(0…