Article View: fj.lang.c
Article #557Re: 標準ライブラリー関数の定義はどこに ?
From: Takayuki Kamei
Date: Wed, 01 Apr 1998 00:00
Date: Wed, 01 Apr 1998 00:00
29 lines
2149 bytes
2149 bytes
富永といいます In article <6fq0do$56g$1@nozomi.amico.co.jp> watanabe@gta.amita.co.jp (Iwao Watanabe) writes: | >> main() /*printf()の宣言をしない。*/ : | 私が今までに利用したことがあるものについては | 上の例についてはヘッダが無くともコンパイルできてしまう処理系の | ほうが多いですが、そうでないものが存在するのも知っています。 | 宣言なしに呼出が行われているので、戻り値がint、引数が不明です。 戻り値の型は*たまたま*一致しています。また、引数が不明なので 自動型変換が適用されますが、このケースでは引数はchar*1つなので これも特に問題は起きないはずです。 コンパイルできることはもとより正常動作すべきであり、 そうでないならUNIX-CでもANSI-Cでもないし、特殊環境です。 引数をスタックに積もうがレジスタで渡そうがコンパイラの勝手ですが、 プロトタイプ宣言が必須という実装は、ANSI-Cとしては違法なはずで、 UNIX-Cとしては非常識です。 ちなみに、以上は文法上の話です。 コンパイラの型チェック機能は利用すべきものです。 プログラミングの作法としては、include*すべき*だし、 プロトタイプ宣言は使用*すべき*です。 「すべき」の程度は、プロならば違反が考えられない程度です。 ────────────────────── 富永 純 tominaga@msi.co.jp
Technical Details
Message-ID:
<TOMINAGA.98Apr1125840@tommy.msi.co.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<sp4049tk.98Mar28191830@kisokou05.ex.ecip.osaka-u.ac.jp> <1998Mar28.111741.5702@merope.opus.or.jp> <sp4049tk.98Mar3110130@kisokou10.ex.ecip.osaka-u.ac.jp> <6fq0do$56g$1@nozomi.amico.co.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 106434,419345b2de002f4a X-Google-Attributes: gid106434,public From: tominaga@tommy.msi.co.jp (Takayuki Kamei) Subject: Re: 標準ライブラリー関数の定義はどこに ? Date: 1998/04/01 Message-ID: <TOMINAGA.98Apr1125840@tommy.msi.co.jp> X-Deja-AN: 339720188 References: <sp4049tk.98Mar28191830@kisokou05.ex.ecip.osaka-u.ac.jp> <1998Mar28.111741.5702@merope.opus.or.jp> <sp4049tk.98Mar3110130@kisokou10.ex.ecip.osaka-u.ac.jp> <6fq0do$56g$1@nozomi.amico.co.jp> X-Nsubject: Re: $BI8=`%i%$%V%i%j!<4X?t$NDj5A$O$I$3$K(B ? Content-Type: text/plain; charset=ISO-2022-JP Organization: Mathmatical Systems Inc. Mime-Version: 1.0 Newsgroups: fj.lang.c