プリプロセッサ(__FILE__と__LINE__)

VCのプリプロセッサには、__FILE__と__LINE__があるのだけど、これがまた便利。

#define test() System.out.println( "check : " + __FILE__ + " : " + __LINE__ )

test();

こうすれば、test()は、

System.out.println( "check : " + "source\\test.cpp" + " : " + 12 );

こんな感じに展開される。
__FILE__は、プリプロセッサをかけているファイル名を、
__LINE__は、プリプロセッサをかけている行に変換されます。
つまり、これを使えば、

System.out.println( "check001" );
if( hoge == 100 ){
    System.out.println( "check002" );
    hoge = 0;
}
System.out.println( "check003" );

こうやって書いていたものを、

test();
if( hoge == 100 ){
    test();
    hoge = 0;
}
test();

こうすることが出来ます。非常に便利ヽ(´ー`)ノ