関数アドレステーブルから各関数アドレスを取り出し、関数アドレス変数に代入する。
Posted: 2015年12月24日(木) 17:29
初めておじゃまします。
どうにも解決できないので 申し訳ありませんが、お尋ねします。
[件名]の通り、関数アドレステーブルには、引数の異なる関数のアドレスが入っており、 これをそれぞれの関数アドレス変数に代入したいのですがコンパイルエラーになってしまいます。
// BIOS_Table::関数アドレステーブル
// +0:引数が、1つの関数アドレス
// +1:引数が、2つの関数アドレス
// BIOS_00 : 引数が、1つの関数アドレス変数
// BIOS_01 : 引数が、2つの関数アドレス変数
int (*BIOS_Table) [];
int (*BIOS_00) (int);
int (*BIOS_01) (int,int);
BIOS_Table = (void*) swi0x00_function(); //関数アドレステーブルを返すfunction
BIOS_00 = BIOS_Table[0]; <<<< error (関数アドレスを取り出し、変数に入れたい)
BIOS_01 = BIOS_Table[1]; <<<< error (関数アドレスを取り出し、変数に入れたい)
色々キャストしてみたのですが解決できません。 どうぞ宜しくお願いいたします。
どうにも解決できないので 申し訳ありませんが、お尋ねします。
[件名]の通り、関数アドレステーブルには、引数の異なる関数のアドレスが入っており、 これをそれぞれの関数アドレス変数に代入したいのですがコンパイルエラーになってしまいます。
// BIOS_Table::関数アドレステーブル
// +0:引数が、1つの関数アドレス
// +1:引数が、2つの関数アドレス
// BIOS_00 : 引数が、1つの関数アドレス変数
// BIOS_01 : 引数が、2つの関数アドレス変数
int (*BIOS_Table) [];
int (*BIOS_00) (int);
int (*BIOS_01) (int,int);
BIOS_Table = (void*) swi0x00_function(); //関数アドレステーブルを返すfunction
BIOS_00 = BIOS_Table[0]; <<<< error (関数アドレスを取り出し、変数に入れたい)
BIOS_01 = BIOS_Table[1]; <<<< error (関数アドレスを取り出し、変数に入れたい)
色々キャストしてみたのですが解決できません。 どうぞ宜しくお願いいたします。