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

[freewnn:00091] Re: prototype



 元木@ITLです。

In article <199908121617.BAA27534@pop1.ngy.3web.ne.jp>
    frkwtto@osk3.3web.ne.jp (Tatsuo Furukawa) writes:
| 元木さん> # K&R だったら #define __P (), ANSI だったら #define __P (x)
| 元木さん> # とかで。

 訂正。
 K&R だったら #define __P (), ANSI だったら #define __P x
 です。

| zsh や GhostScript では ansi2knr を使っています。この方式を FreeWnn で
| も導入するというのはどうでしょうか? そうすれば、心おきなく ANSI-C で書
| けますから開発効率アップ! んで、K&R のコンパイラしかない人は、自動的に 
| Makefile が ANSI-C => K&R に書き換えてからコンパイルしてくれるというわ
| けです。

 ansi2knr ってプロトタイプ宣言の変換までやってくれないような
 気がします。(少なくとも automake と zsh の ansi2knr はやっ
 てくれません。)

# zsh でも _(char *, char *) と同じ手法のようです。

 しかも、ansi2knr に気を使って書かなければならないので結構骨
 なると思うのです。

 なんせテストで書いたANSI なソースは automake & zsh の 
 ansi2knr 君は何も手を加えてくれませんでした (^^;

 int main(int argc, char **argv)
 {
   return(0);
 }

 ではなくて、

 int 
 main(int argc, char **argv)
 {
   return(0);
 }

 でないと受け付けてくれないようです。

# cproto とかは __P((char *, char *)) な形式のプロトタイプ宣
# 言も作成してくれます。労力を少なくする手段はあるはず。

| # automake にも同様の機能があるみたいですね。

 automake もまんま ansi2knr のようです。
 ansi2knr.c はソースアーカイブに含めておいて、それをコンパイ
 ルして、ANSI -> K&R 変換をする方式のはずです。

sin.