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

[freewnn:00727] Re: recent patches



小野寛生です
ちょっとだけ。

aono> すみません、どうやらSolaris (2.4と8で確認)では、_Pマクロが
aono> ctype.hで定義されていて、コンパイルできません(;_;)。

aono> #(詳しくは分かりませんが)ISO Cで定義されているくらいなの
aono> #だから、その内標準になるのでしょうが…。

書き方悪くてごめんなさい。ISO C では定義されていません。
ISO C をサポートというのは、(主にコンパイル時のチェックをコンパイラに
行なってもらいやすくするために) ANSI/ISO C のプロトタイプ宣言に変更す
るということです。
で、そうすると、K&R C サポートが broken になるので、

>>     #if !defined(_P)
>>     # if (defined(__STDC__) && (__STDC__)) || defined(_cplusplus)
>>     #  define _P(p) p
>>     # else
>>     #  define _P(p) ()
>>     # endif
>>     #endif

というマクロをいれるという話が、GNU Coding Standard や C FAQ に書かれ
ています (積極的に推奨はされていませんが)。
とりあえず、_() か P_() のどちらかにかえましょうか。

『エキスパート C プログラミング』という本だと、K&R style と ANSI style 
のプロトタイプ宣言、関数定義をまぜるなと書かれていることもあって、迷う
ところなんですが…。


http://www.freewnn.org/ FreeWnn Project