[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00314] Re: jutil



濱嶋です

>> % ほかにも、ujisf.c の関数は他で使われているので、いちいちプロトタイプ
>> % 宣言せずに、ujisf.h を作って include した方がよいかもしれない、とか。
> 
> こっちは、
> 
> 1.7:    外部変数を宣言、定義する一番よい方法は。
> A:       一番よい取り決め
>         (arrangement)は、各定義を関連する.cファイルに置き、外部宣言を
>         ヘッダファイル(".h")に置くことである。そしてヘッダファイル
>         を宣言が必要になったら必ず#includeする。定義をふくんだ
>         (contain).cファイルも同じヘッダファイルを#includeして、コン
>         パイラが定義と宣言を照らし合わせることができるようにする。
> 
> とあったので、そうすることにしました。

既に方針を決定されたようですが(その案には賛成です)、159から202にかけての
  Subject: FreeWnn-1.1.1-a012 がタイムアウトします
で、stdlib.hがincludeされていなかった為にdrand48()の戻り値をintだと思っ
て、結果jserverがお亡くなりになるという事がありました

OSの関数でもincludeするように、そういう個所を見かけた人がいたら変更をし
ていくべきだと思います

>> 3. どうしてこういう定義が?
>> たとえば、Xsi/Wnn/jutil/{atod,dtoa,atof}.c などでは
>> exit1() とか sort() という関数を使っているのですが、
>> そいつは Xsi/Wnn/jutil/ujisf.c で
(中略)
>> というわけで、exit1() は
>>
>> #include <stdlib.h>
>>  exit(1);
>>
>> で済むと思うのですが、さて何で今のようになっているのでしょう?

私がつくったのではないから想像ですが、終了処理を拡張できるようにとか
デバッグの為とかではないかと思います