プリプロセッサ(#)

define定義をするときに、##を使えば、前後の文字列が繋がることは知っていたけど、#もあったというのは知らなかった。

#define var(s) System.out.println(#s + " = " + s)

int hoge = 100;
var(hoge);

こうすれば、varは次のように展開される。

var("hoge" + " = " + hoge);

これ、ちょっと変数の値を出したいときにめちゃめちゃ便利だ……。
なんで今まで知らなかったんだろう(;´Д`)