Standardparameter: Geben Sie den Standardparameterwert in der Funktionsdefinition an, verwenden Sie vordefinierte Konstanten; variable Parameter: Verwenden Sie Ellipsen zur Darstellung, kompilieren Sie sie in einen Zeiger auf das Array, verpacken Sie die eingehenden Parameter und durchlaufen Sie das Array, um auf die Parameter zuzugreifen.
Entdecken Sie die zugrunde liegende Implementierung von Standardparametern und variablen Parametern in C++-Funktionen
Standardparameter
Standardparameter sind ein Mechanismus, mit dem Sie Standardwerte für Parameter in einer Funktionsdefinition angeben können. Es ermöglicht Funktionen, Standardwerte zu verwenden, wenn keine tatsächlichen Parameter übergeben werden.
Unter der Haube werden tatsächlich Standardparameter vom Compiler implementiert, also Parameter, die als Konstanten vordefiniert sind. Wenn der Compiler eine Funktion mit Standardparametern aufruft, prüft er, ob die eingehende Variable übergeben wird, und verwendet andernfalls den vordefinierten Standardwert.
Zum Beispiel:
void print_number(int num, int default_num = 10) { cout << (num ? num : default_num) << endl; }
Beim Aufrufen dieser Funktion können wir den zweiten Parameter übergeben oder nicht übergeben:
print_number(5); // 输出 5 print_number(0, 20); // 输出 20
Variable Parameter
Variable Parameter werden auch Parameter variabler Länge genannt, die es der Funktion ermöglichen, eine Variable zu akzeptieren Anzahl der Parameter. In C++ werden Varargs durch Ellipsen (...
) dargestellt. ...
) 表示。
在底层,可变参数被编译为一个指向数组的指针。当函数被调用时,编译器将传入的参数打包到分配的此数组中。然后,函数可以遍历该数组来访问参数。
例如:
int sum_numbers(int count, ...) { int sum = 0; va_list args; va_start(args, count); // 获取可变参数列表 for (int i = 0; i < count; ++i) { sum += va_arg(args, int); // 访问第 i 个参数 } va_end(args); // 清理可变参数列表 return sum; }
当调用该函数时,我们可以传递任意数量的参数:
cout << sum_numbers(3, 1, 2, 3) << endl; // 输出 6 cout << sum_numbers(5, 10, 20, 30, 40, 50) << endl; // 输出 150
实战案例
在现实世界中,默认参数和可变参数有广泛的应用。例如:
print()
print()
in Python. 🎜🎜Das obige ist der detaillierte Inhalt vonErkunden Sie die zugrunde liegende Implementierung von Standardparametern und variablen Parametern von C++-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!