VC++6.0をつかってます。
いま名前空間みたく、記述の簡略化を試しているのですが、ローカルで決まった構造体を簡略化
できないでしょうか?
STRUCT_A ABCDEFGHIJKLMN;
ABCDEFGHIJKLMN.filename = b.txt;
を、なんとかして、
x.filename = b.txt;
と書き換えたいのです。ある範囲だけある文字をコンパイル前に置き換えるっていうマクロでも
いいのでお願いします。
コンストラクタの無いクラスは、C89時代からある
STRUCT_A ABCDEFGHIJKLMN = { b.txt };
で、有るクラス(例:STRUCT_A::STRUCT_A(const char*))は
STRUCT_A ABCDEFGHIJKLMN( b.txt );
STRUCT_A ABCDEFGHIJKLMN = b.txt;
という記述方法があります。
詳細は文法書を参照して下さい。
回答ありがとうございます。
へぇ=、コンストラクタの記述のことは新たな発見です。すばらしいですね。
初期化の場合じゃなくて、もっといっぱい、
ABCDEFGHIJKLMN.filename = b.txt; //やら
ABCDEFGHIJKLMN.position_x = 0.0f; //やら
ABCDEFGHIJKLMN.position_y = 0.0f;
があるんですよ。これを体系的にまとめたいんですが、
{
STRUCT_A x = ABCDEFGHIJKLMN;
x.filename = b.txt;
x.position_x = 0.0f;
x.position_y = 0.0f;
}
みたいに。これをメモリの容量使わず記述だけで行いたいのです。お願いします。
STRUCT_A& x = ABCDEFGHIJKLMN;
x.filename = b.txt;
x.position_x = 0.0f;
x.position_y = 0.0f;
マクロでよいなら、
#define x ABCDEFGHIJKLMN
x.filename = b.txt;
x.position_x = 0.0f;
x.position_y = 0.0f;
#undef x
回答ありがとうございます!
#undef なんてあったんですか^^; 知らなかった。
ありがとうございました。m(_ _)m