Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk menentukan dan memanggil fungsi variadic dalam C++?

Bagaimana untuk menentukan dan memanggil fungsi variadic dalam C++?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-04-12 21:03:02
asal
1017 orang telah melayarinya

Dalam C++, gunakan... (elipsis) untuk mentakrifkan fungsi parameter pembolehubah, membenarkan fungsi menerima sebarang bilangan parameter semasa memanggil, hanya layan ia sebagai fungsi parameter tetap.

C++ 中如何定义和调用可变参数函数?

Bagaimana untuk menentukan dan memanggil fungsi variadic dalam C++?

Fungsi pembolehubah (juga dikenali sebagai fungsi variadik) membenarkan fungsi menerima sebarang bilangan parameter. Pustaka standard C++ mengandungi satu siri fungsi variadik, seperti printf() dan scanf(). Anda juga boleh menentukan fungsi variadik anda sendiri. printf()scanf()。您还可以定义自己的可变参数函数。

定义可变参数函数

要定义可变参数函数,请使用语法 ...(省略号)。它表示该函数可以获取任意数量的参数。例如:

#include <iostream>
#include <cstdarg> // 包含 va_list 和相关的宏

void print_numbers(int count, ...) {
  va_list args;
  va_start(args, count); // 初始化 va_list 对象

  // 遍历可变参数
  for (int i = 0; i < count; i++) {
    int num = va_arg(args, int); // 获取下一个 int 类型的参数
    std::cout << num << " ";
  }

  va_end(args); // 清理 va_list 对象
}
Salin selepas log masuk

注意,... 必须放在所有固定参数定义之后。

调用可变参数函数

要调用可变参数函数,只需将其视为具有固定数量参数的其他函数。例如:

print_numbers(3, 1, 2, 3);
Salin selepas log masuk

该函数会打印出 1 2 3

Tentukan fungsi variadik

Untuk mentakrifkan fungsi variadik, gunakan sintaks ... (ellipsis). Ini bermakna bahawa fungsi boleh mengambil sebarang bilangan parameter. Contohnya:

#include <iostream>

void print_max(int count, ...) {
  va_list args;
  va_start(args, count);

  // 保存最大值
  int max = INT_MIN;

  // 获取并比较可变参数
  for (int i = 0; i < count; i++) {
    int num = va_arg(args, int);
    if (num > max) {
      max = num;
    }
  }

  va_end(args);

  // 打印最大值
  std::cout << "最大值:" << max << std::endl;
}

int main() {
  print_max(3, 1, 2, 3);
  print_max(5, 3, 5, 2, 1, 7);

  return 0;
}
Salin selepas log masuk

Perhatikan bahawa ... mesti diletakkan selepas semua takrifan parameter tetap.

🎜Memanggil fungsi variadic🎜🎜🎜Untuk memanggil fungsi variadic, hanya layan ia seperti fungsi lain dengan bilangan argumen tetap. Contohnya: 🎜
最大值:3
最大值:7
Salin selepas log masuk
🎜Fungsi ini akan mencetak 1 2 3. 🎜🎜🎜Kes praktikal🎜🎜🎜Contoh berikut menunjukkan cara mentakrif dan memanggil fungsi variadik: 🎜rrreee🎜Output: 🎜rrreee

Atas ialah kandungan terperinci Bagaimana untuk menentukan dan memanggil fungsi variadic dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan