こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

C言語標準関数の引数についての質問です。

strcpy、memsetなど
C言語の標準関数の引数に注目したところ
前に出力パラメータを持ってきているものが多いように思えます。

例えば、
char *strcpy(char *dest, const char *src);
の場合、
第1引数の"dest"が出力パラメータで
第2引数の"src"が入力パラメータとなっています。

入力よりも出力を前に持ってきている理由が何かあるのでしょうか。
今後、自分が設計をするときの参考にしたいと考えているので
理由を知っている方がいたら教えて下さい。

投稿日時 - 2008-07-25 01:53:39

QNo.4202225

困ってます

このQ&Aは役に立ちましたか?

18人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2008-07-27 21:23:45

ANo.2

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

投稿日時 - 2008-07-26 03:40:23

ANo.1

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

投稿日時 - 2008-07-25 06:10:59

お礼

なるほど。
「統一感を出すため」という考え方は非常に説得力があります。

今後の設計の役に立ちそうなご意見ありがとうございます。

投稿日時 - 2008-07-26 22:19:05

あなたにオススメの質問