From: Yukihiro Matsumoto Date: 2005-09-08T17:57:31+09:00 Subject: [ruby-dev:26990] Re: [proposal] ANSI style function まつもと ゆきひろです In message "Re: [ruby-dev:26989] Re: [proposal] ANSI style function" on Thu, 8 Sep 2005 17:42:14 +0900, H.Yamamoto writes: |これに関係して質問です。コールバック関数は、任意の型をあらわすのに |VALUE を使ったり void * を使ったりしています。例えば | |eval.c | |rb_thread_create(VALUE (*fn) (ANYARGS), void *arg) | |のようにして、 | |ext/pty 側では | |static VALUE |pty_syswait(info) | struct pty_info *info; | |のようにコールバックが定義されています。つまり、今のところは |K&R の影響で型についてルーズなのですが、これをどうすべきでしょうか。 | | 1. インターフェースは堅持する。(こういう部分は K&R に戻す) | | 2. rb_thread_create(VALUE (*fn) (void *), void *arg) にする | | 3. rb_thread_create(VALUE (*fn) (VALUE), VALUE arg) にする | | |1 は避けたいところですが・・・今まで見てきたソースでは 3 が多かったので |これに統一するのも良いと思います。(というか void *arg は eval.c で初めて見た) これだからANSIは...。3でいいんじゃないでしょうか。