スポンサーリンク

C言語における可変引数とは、引数の数が変わる引数のことです。

C言語で可変引数を受け取るためには、va_arg(),va_start(),va_end()を利用します。

UNIXのlibcなどで可変引数を利用していて、printf()関数やopen()システムコールなどです。

サンプルコード
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>

void
kopen (const char *name, int flags, ...)
{
	va_list	ap;
	va_start(ap, flags);
	printf ("%o\n", va_arg(ap, int));
	va_end (ap);
}

int
main (int argc, char *argv[])
{
	kopen ("/hoge", 3, 0666);

	exit (EXIT_SUCCESS);
}

コンパイル
コンパイル方法は以下の通りです。

cc arg.c


関連
[2008-06-23-1] C言語プログラミング マクロで可変引数を扱う方法とデバッグprintf
[2008-06-23-2] C言語プログラミング ifdefでデバッグする方法
[2008-06-17-1] C言語 可変引数 va_arg

参照しているページ (サイト内): [2008-06-23-2] [2008-06-23-1] [2008-06-17-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー