■ コラム(6章のp.146に挿入)「関数が定義されているときのみ呼び出す」 ---------------------------------------------------------------- PROVIDE()を利用することで,特定の関数が定義されているときのみ 呼ばれるようにすることができます.たとえば以下のようにして リンカ・スクリプトでシンボルを登録しておきます. PROVIDE(func = 0); 実際に関数呼び出しする位置では,以下のように記述しておきます. extern void (*func)(); if (func) { func(); } このようにすると,C言語ソース上で関数func()が定義されている場合には 呼ばれますが,定義されていない場合には PROVIDE() が有効となり func の値が ゼロになるため,関数呼び出しされなくなります. この方法は,TOPPERS/JSPのhardware_init_hook()/software_init_hook()の 実装に利用されています.(関数定義されているときのみ,呼び出される) ----------------------------------------------------------------