Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách đếm số lượng đối số biến đổi trong C

Ở đây ta xem cách đếm số đối số trong trường hợp variadic function.

C hỗ trợ ellipsis ... cho hàm nhận số lượng đối số biến. Có 3 cách đếm:

  • Tham số đầu tiên là số lượng tham số.
  • Tham số cuối cùng là NULL.
  • Dùng logic như printf()/scanf(): tham số đầu có placeholder cho các tham số khác.

Chương trình đếm tổng số đối số biến:

Ví dụ

#include <stdio.h>
#include <stdarg.h>

int get_avg(int count, ...) {
    va_list ap;
    int i, sum = 0;
    va_start(ap, count);
    for (i = 0; i < count; i++) {
        sum += va_arg(ap, int);
    }
    va_end(ap);
    return sum;
}

int main() {
    printf("Total variable count is: %f", get_avg(5, 8, 5, 3, 4, 6));
    return 0;
}

Kết quả

Total variable count is: 5