以下はcのコードです。
fact(2);
void fact(static int i)
{..}
Output:Error は静的引数
を持つことはできません では、なぜ関数に静的引数を持たせないのでしょうか?
以下はcのコードです。
fact(2);
void fact(static int i)
{..}
Output:Error は静的引数
を持つことはできません では、なぜ関数に静的引数を持たせないのでしょうか?
static キーワードは、変数がスコープ内にインスタンスを 1 つだけ持つことができ、そのインスタンスがスコープ外では見えないことを意味します。これらの要件はどちらも、関数の引数には意味がありません。異なるメモリ アドレスで複数回呼び出される可能性があり、通信用であるため、外部から見える必要があります。
引数に適用しようとしてもstatic
あまり意味がないため、標準では許可されていません (§6.7.5.3/2: 「パラメーター宣言で発生する唯一のストレージ クラス指定子はregister
.」)。