2

重複の可能性:
C 関数の構文、パラメーター リストの後に宣言されたパラメーターの型

私はいくつかのCコードを閲覧していて、inet_pton関数の定義を見つけました(.cファイルで):

int
inet_pton(af, src, dst)
    int af;
    const char *src;
    void *dst;
...

ここで面白いのは、関数のパラメーターの型が、これまでに見たことのない方法で指定されていることです。対応するヘッダー ファイルでは、パラメーターの型は通常どおり指定されます。

extern int inet_pton (int __af, __const char *__restrict __cp,
              void *__restrict __buf) __THROW;

私の質問は次のとおりです。これはある種の C トリックですか? スコープ内の関数のパラメーターの型を常に定義できますか?

4

3 に答える 3

5

古い、カーニハン & リッチー C スタイルのように見えます。

レガシー コードに見られることもありますが、このコーディング スタイルはもはや適切な方法とは見なされておらず、ANSI C や最新の C99 または C11 とは互換性がないと思われるため、使用しないでください。

于 2013-01-29T12:59:39.653 に答える
3

ANSI C スタイル以前のコードについては、こちらを参照してください: http://sunsite.ualberta.ca/Documentation/Gnu/autoconf-2.13/html_node/standards_8.html

于 2013-01-29T13:00:03.023 に答える
2

これは昔のK&Rスタイルです。同等の最新のアプローチは次のようになります。

int inet_pton(int af, const char *src,    void *dst) {
...
于 2013-01-29T13:00:40.303 に答える