プロが教えるわが家の防犯対策術!

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

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

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

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

A 回答 (3件)

#1 が正解かなという気がします.


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

英語だと


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

一般の代入文のとき


dest = src;
ですので、それと同じ雰囲気を出すためにそうしているのではないでしょうか。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2008/07/26 22:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング