main関数より前に処理を実行する。(実用性なし?)

2014年3月4日

昨日は体調を崩して記事お休みしました。
最近、ふとアクセス数を見たら、以外と見てくださる方がいるようで驚きです。
さて、本題。
C++でmain関数より前に何か実行したい事って滅多にないですが、
まあ、実施することは可能です。

#include <stdio.h>
void beforeMain(){
^   printf("サラマンダーより、ずっとはやい!!\n");
}
namespace {
^   struct beforeMainCaller {
^   ^   beforeMainCaller() {
^   ^   ^   beforeMain();
^   ^   }
^   } caller;
}
int main() {
^   printf("サラマンダー、とっても速いね!\n");
^   return 0;
}

結果として以下のような出力になります。

$ ./a.exe
サラマンダーより、ずっとはやい!!
サラマンダー、とっても速いね!

ちなみにヨヨは、一般的な女性だと思います。ハイ。
おとなになるって悲しいことだよね。

c++

Posted by koheizi