[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);
>>
>> で済むと思うのですが、さて何で今のようになっているのでしょう?
私がつくったのではないから想像ですが、終了処理を拡張できるようにとか
デバッグの為とかではないかと思います