デフォルトのパラメータはコンパイル時に展開され、実行時のパフォーマンスには影響しません。変数パラメータは実行時のオーバーヘッドを生成するため、集中的な使用は避けてください。
#C 関数のデフォルト パラメータと変数パラメータがプログラムのパフォーマンスに及ぼす影響
#デフォルト パラメータ
デフォルト パラメーターを使用すると、関数は実際のパラメーターを渡さずにデフォルト値を指定できます。デフォルトのパラメータはコンパイル時に展開されるため、プログラムの実行時のパフォーマンスには影響しません。 たとえば、次の関数について考えてみましょう:int computeAverage(int n, int x = 0) { return (n + x) / 2; }この関数では、
x のデフォルト値は
0 です。関数を呼び出すときに #xx
を指定しない場合は、デフォルト値が使用されます。
可変個引数パラメーターを使用すると、関数は可変数の引数を受け入れることができます。変数パラメーターは関数の最後のパラメーターである必要があり、
... で表されます。 たとえば、次の関数について考えてみましょう:
int sumNumbers(int n, ...) { va_list args; va_start(args, n); int sum = n; while (true) { int num = va_arg(args, int); if (num == 0) { break; } sum += num; } va_end(args); return sum; }
この関数は、任意の数の整数を受け入れ、
0 (センチネル値) に達するまでそれらを合計することができます。
computeAverage()
と sumNumbers()
を使用する次のプログラムを考えてみましょう。関数: <pre class='brush:cpp;toolbar:false;'>int main() {
// 默认参数
int avg1 = computeAverage(10);
int avg2 = computeAverage(10, 5);
// 可变参数
int sum1 = sumNumbers(10, 20, 30, 0);
int sum2 = sumNumbers(10, 20, 0);
return 0;
}</pre>
このプログラム内:
以上がC++ 関数のデフォルト パラメーターと変数パラメーターがプログラムのパフォーマンスに与える影響の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。