😸

[C] va_end 関数

に公開

機能

可変長引数リスト(va_list型)の使用終了処理を行うマクロ[1]

使用例

sum: 6 と表示する

\n は改行を表す エスケープシーケンス[2]

コード

int sum(int num, ...) {
    va_list args;
    int result = 0;
    va_start(args, num);
    for (int i = 0; i < num; i++) {
        result += va_arg(args, int);
    }
    va_end(args);
    return result;
}
printf("sum: %d\n", sum(3, 1, 2, 3));
全文
#include <stdio.h>
#include <stdarg.h>

int sum(int num, ...) {
    va_list args;
    int result = 0;
    va_start(args, num);
    for (int i = 0; i < num; i++) {
        result += va_arg(args, int);
    }
    va_end(args);
    return result;
}

void main() {
    printf("sum: %d\n", sum(3, 1, 2, 3));
}

実行結果

sum: 6

result: 10 を変数から表示する

コード

int a = 4, b = 6;
printf("result: %d\n", sum(2, a, b));
全文
#include <stdio.h>
#include <stdarg.h>

int sum(int num, ...) {
    va_list args;
    int result = 0;
    va_start(args, num);
    for (int i = 0; i < num; i++) {
        result += va_arg(args, int);
    }
    va_end(args);
    return result;
}

void main() {
    int a = 4, b = 6;
    printf("result: %d\n", sum(2, a, b));
}

実行結果

result: 10
脚注
  1. va_start, va_argと組み合わせて使い、リソースを正しく解放する。 ↩︎

  2. 改行やタブなど、画面に表示されない制御文字のこと。 ↩︎

Discussion