椚座です。 On Fri, 19 Nov 2004 10:56:35 +0900 "Koji Takeuchi" <ktakeuchi@xxxxxxxxxxxxxxxxx> wrote: > リストの皆様へ自己レスで御座います。 > > HIMにてコンパイルした結果です。 > その記述により飛ばなかったり飛んだりすることが分かりました。 > > #define Func_1 ((void (*)(void))0x600) ----------------(1) > > #define Func_1 ((void (*)())0x600)() ------------------(2) (1) の #define では,うしろの () がないので呼び出しにはなりません。 これだけを書いても,コンパイルのときに,無意味なものとして省かれます。 逆にいえば,() を付けてやればよいので,使うときには Func_1(); という ふうに () を付ける必要があります。(2) の場合は,#define のなかに () が含まれているので,改めて () を付ける必要はなく,Func1; だけで 呼び出しになります。 どちらの書き方も正しいのですが,コード中で,いきなり Func_1; が 出てきても意味が分かりにくいと思うので,(1) の方を使ってあとから () を付ける方が好ましいかな。 椚座 淳介 (Junsuke Kunugiza) E-Mail: jk@xxxxxxx http://www.exp.org/