blog/content/post/2008/07/06/2008-07-06-『c言語ポインタ完全制覇-標準プ...

2.7 KiB
Raw Blame History

title author date url wordtwit_post_info categories
『C言語ポインタ完全制覇 (標準プログラマーズライブラリ)』 kazu634 2008-07-06 /2008/07/06/_1035/
O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4121;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}
C
Programming

可変長引数

 stdarg.hをインクルードする必要があるらしい。

/* ======================= */
/* === Include library === */
/* ======================= */
#include <stdio.h>
#include <stdarg.h>
#include <assert.h>
/* ================= */
/* === Functions === */
/* ================= */
void tiny_printf(char *format, ...)
{
int	i;
va_list	ap;
va_start(ap, format);
for (i = ; format[i] != '\0'; i++)
{
switch (format[i]){
case 's':
printf("%s ", va_arg(ap, char*));
break;
case 'd':
printf("%d ", va_arg(ap, int));
break;
default:
assert();
}
}
va_end(ap);
putchar('\n');
}
int main(void)
{
tiny_printf("sdd", "result...", 3, 5);
return ;
}