GCCの4.3の新機能 __COUNTER__マクロ

もう一つ気になった機能で __COUNTER__マクロがあります。
これは呼ばれるたびに 0から1ずつインクリメントしていく
というものです。


利用方法がよくわからないけど、便利なのかな?
マクロって結局実行前に展開されてしまうからね。
そこが難しいところです。デバッグぐらいかな。

#include <stdio.h>

int main(void)
{
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);
  printf("%d\n", __COUNTER__);

  return 0;
}

結果は以下のとおり

0
1
2
3
4
5
6
7
8
9
10