9 static void _prtl10(
long num,
char *str);
10 static void _prtl8(
long num,
char *str);
11 static void _prtX16(
long num,
char *str);
12 static void _prtl16(
long num,
char *str);
13 static void _prtl2(
long num,
char *str);
14 static void _prtdbl(
double num,
int precision,
char *str);
48 while ((c = *fmt++) !=
'%')
63 if ((leftjust = ((*fmt ==
'-')) ? 1 : 0))
68 fill = (*fmt ==
'0') ? *fmt++ :
' ';
80 while (
'0' <= *fmt && *fmt <=
'9')
82 fmin = fmin * 10 + *fmt++ -
'0';
96 while (
'0' <= *fmt && *fmt <=
'9')
98 fmax = fmax * 10 + *fmt++ -
'0';
104 if ((f = *fmt++) ==
'\0')
114 string[0] =
va_arg(ap,
int);
141 darg =
va_arg(ap,
double);
224 for (length = 0; str[length] !=
'\0'; length++)
227 if (fmin >
MAXSTR || fmin < 0)
231 if (fmax >
MAXSTR || fmax < 0)
236 if (fmax != 0 || fmin != 0)
247 leading = fmin - length;
254 if (sign ==
'-' && fill ==
'0')
260 for (i = 0; i < leading; i++)
265 if (sign ==
'-' && fill ==
' ')
269 for (i = 0; i < length; i++)
275 for (i = 0; i < leading; i++)
295 temp[1] = ((num<0) ? -(num%10) : (num%10)) +
'0';
296 num /= (num<0) ? -10 : 10;
297 for (i = 2; i <= 10; i++) {
298 temp[i] = num % 10 +
'0';
301 for (i = 10; temp[i] ==
'0'; i--);
321 for (i = 1; i <= 11; i++)
323 temp[i] = (num & 07) +
'0';
327 for (i = 11; temp[i] ==
'0'; i--);
347 for (i = 1; i <= 8; i++)
349 temp[i] =
"0123456789abcdef"[num & 0x0F];
352 for (i = 8; temp[i] ==
'0'; i--);
372 for (i = 1; i <= 8; i++)
374 temp[i] =
"0123456789ABCDEF"[num & 0x0F];
377 for (i = 8; temp[i] ==
'0'; i--);
397 for (i = 1; i <= 32; i++)
399 temp[i] = ((num % 2) == 0) ?
'0' :
'1';
402 for (i = 32; temp[i] ==
'0'; i--);
422 for(i = 0, mp = 1; i < precision; i++, mp *= 10);
424 num = ((num<0) ? -(num) : (num));
426 p = (long)(num * mp) - (long)(w * mp);
429 while(*str !=
'\0') { str++; }
static void _prtl2(long num, char *str)
static void _prtl10(long num, char *str)
static void _prtX16(long num, char *str)
static void _prtl16(long num, char *str)
#define va_arg(va, type)
可変長引数の値を返し、次の引数へ進む。 「va_start()とva_end()の間」もしくは「va_copy()とva_end()の間...
void _doprnt(char *fmt, va_list ap, int(*func)(int))
static void _prtdbl(double num, int precision, char *str)
__builtin_va_list va_list
可変個の実引数を扱うための情報を保持するための型(__builtin_va_listはGCCに定義された型) ...
static void _prtl8(long num, char *str)