「仮説」とはどういう意味ですか?


8

関数の引数が仮引数と呼ばれているのはどういう意味ですか?私はこの用語をFortran以外で使用したことはありませんが、コンピューターサイエンスの一般用語ですか?ダミーとして渡され、ダミーとして渡されない引数の例は何ですか?

私はこの定義を見つけましたが、わかりませんが、仮引数は参照によって渡される変数のようです。この場合、Fortranではすべての変数がダミー変数ですか?(混乱)

編集:私は次のエッセイに出くわしただけで、Fortranの引数/関数呼び出しのテモノロジーをよりよく理解するのに役立ちました:Dortor Fortran:引数のためにここに来ました


インテルのウェブサイトでこの投稿が役に立ったとわかりました!software.intel.com/en-us/...
user515577

回答:


15

「未使用」としての「ダミー」

一般に(Fortranではない)仮引数は、関数の本体で使用されない引数です。

たとえば、次の関数でzは、は仮引数ですがx、そうでyはありません。

int f(int x, int y, int z) {
  return (x + y);
}

これらはいくつかの理由で使用できます。

  • 別の引数または構成に応じて、引数は使用され(ダミーではない)、時には使用されません(ダミー)が、プログラミング設定はとにかく引数を渡すように強制します。その場合、あなたは通常、すなわち、関数に何を渡すことができNULLたり0、設定に応じて、

  • 引数はもう必要ありませんが、下位互換性の理由で引数を指定する必要があります。

  • 関数は引数をとりません(プロシージャと呼ぶことができます)が、少なくとも引数を与えるように設定されています。純粋でない関数型プログラミング言語でこれを見つけることができますが、(unitocamlの)型が示唆しているため、一般に「ダミー」とは呼ばれません。

FortranとPascalの「ダミー」

FortranとPascal、そしておそらくあなたのケースでは、私が理解できなかったオブジェクト受け渡し仮引数のより曖昧な概念があります。しかし、それは実際の引数渡し手続きよりも仕様に関係しているようです。(いくつかの説明:リンク1、両方の言語でフランス語でリンク2)。

この概念がまだ使用されているかどうかはわかりません。

「バインド済み」としての「ダミー」

どんな場合でもこの用語はお勧めしませんが、「ダミー変数」は「バインドされた変数」を意味する可能性がありますが、この概念は数学とコンピューターサイエンスのことです。


私の理解(注:フランス語とプログラミング言語のセマンティクスは知っていますが、Fortranは知りません)は、Fortran / Pascalセクションの3つのリンクすべての「ダミー引数」は、参照によって渡されるオブジェクトのローカル名である引数を意味するということです。
Gilles「SO-邪悪なことをやめよう」

15

FORTRANで引数他の言語は、と呼ぶものである仮引数。したがって、仮引数は、関数(またはサブルーチン)定義内の引数のリストです。

実引数は、関数が(すなわち使用)と呼ばれているソースコード内のポイントで、呼び出しリスト内の引数のリストです。


2
これは、Fortranの意味に関してここでの唯一の正しい答えです。
ウラジミールF

3

関数は、次のように明確に定義されています一連の入力と一連の許容出力との関係。ダミー変数は、出力に影響を与えなかった入力です。

「C」では、time関数は、time_tオブジェクトへのポインターを入力として受け取ります。このポインターは出力を取得するためにのみ使用されるため、「ダミー変数」と見なすことができます。


それを出力変数と呼ぶ方が正確ではないでしょうか?実際、一部の設定(C#など)では、実際には「out」キーワードが与えられて、outパラメータとしてラベルが付けられます。
Joe

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.