• 締切済み

C言語の標準関数の引数の順番について

C言語標準関数の引数についての質問です。 strcpy、memsetなど C言語の標準関数の引数に注目したところ 前に出力パラメータを持ってきているものが多いように思えます。 例えば、 char *strcpy(char *dest, const char *src); の場合、 第1引数の"dest"が出力パラメータで 第2引数の"src"が入力パラメータとなっています。 入力よりも出力を前に持ってきている理由が何かあるのでしょうか。 今後、自分が設計をするときの参考にしたいと考えているので 理由を知っている方がいたら教えて下さい。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

#1 が正解かなという気がします. 数学で「ある変数に値を設定する」ときにはだいたい x = ... と書きますし, プログラム言語でも (このように書くものでは) FORTRAN 以来ほとんど全てこのように書かれます. 他の例を考えても, プログラム言語全般として「デスティネーションが前にある」ことが多いですし. さすがに「英語でそういう語順だから」というのはちょっと説得力ないんじゃないでしょうか>#2. むしろ copy from SRC to DEST の方が自然だと思う. あるいは copy を他動詞で使って copy something to DEST か?

  • castable
  • ベストアンサー率0% (0/1)
回答No.2

英語だと copy to DEST from SRC という語順になるから、と思っています。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

一般の代入文のとき dest = src; ですので、それと同じ雰囲気を出すためにそうしているのではないでしょうか。

mogumok
質問者

お礼

なるほど。 「統一感を出すため」という考え方は非常に説得力があります。 今後の設計の役に立ちそうなご意見ありがとうございます。

関連するQ&A