C言語で知らなかったこと
たいしたことじゃないんですけど、C言語での書き方で新しく知ったので書いてみる。
まずはサンプルをprintfの引数に注目。
#include <stdio.h>
int main()
{
int i;printf("%d\n", (i = 3, i * 3));
printf("%d\n", (assert(i == 3), 10));return 0;
}
というプログラムの実行結果が
9
10
となる。
一個目のprintfの引数で、
- iに3が代入される
- 3が代入されているiに3をかける
といったように()の中の式がちゃんと評価されている。んでもって最後のが()の最終的な評価の値になっている。
これはSolaris付属?のCコンパイラでも動いたので、GNUの拡張ってわけでもなさそう。
使える場面は、とりあえず二個目のprintfで書いたような、assertを絡めるときくらいしか思いつかないけど、おもしろいうごきだと思う。
| 固定リンク
| コメント (2)
| トラックバック (0)
最近のコメント