可変長引数関数 c言語

printfのように引数の数を使うときによって可変にできるような関数を作ります。今回はもっとも基本的な使い方。

宣言

void func(int num, ...);

このように “,”の後に … とすると可変長引数を使うことができます。 ここでは num は引数の数を想定しています。 後述しますが、可変長引数リストの通常の使い方では引数の数を判断することができず、正しく動作が行われなくなるため、引数として故意に引数の数を与えています。また、この使い方では可変長引数リストのみの関数宣言はできません。

引数の取り出しから終了まで


void func(int num, ...){ //!可変長引数リストを宣言 va_list args; va_start(args, num);//num以降の引数をリスト(args)に格納 ※ここでの指定が必要なため可変長引数リストのみの宣言ができない。 //!カウンタ int i; for (i = 0; i < num; i++){//num で与えた引数の数だけ与えられた文字列の出力を行う。 printf("%s\n",va_arg(args, char *)); } va_end(args);//可変長引数終了宣言 }

使用した結果

int main(int argc, char *argv[]){
    func(3, "aaa", "bbb", "ccc");
}

aaa
bbb
ccc

AWSを利用した導入事例のご紹介

実際に構築を行ったAWSの事例を紹介しています。導入の目的に近い事例をご覧いただくと、実際の構成例やメリット、注意点などが把握できます。

ブックオフコーポレーション株式会社様
第一生命保険株式会社様
株式会社電通様
株式会社LIFULL様
株式会社リブセンス様
TBSアナウンス部様
明治大学様
拓殖大学様