カンマ・オペレータ
これは使えそう。
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",a), printf("b=%d \n", b), c); printf("x=%d \n", x);
これを実行すると、こんな出力になる。
a=0 b=1 x=2
こんなマクロ書いて、ちょっと手を加えたら幸せになれそう。
#define TRACE(func) (printf("Enter %s @%s \n", #func, __func__), func)