Itsa me, quake3io!

This commit is contained in:
Zachary Slater 2005-08-26 04:48:05 +00:00
parent dbe4ddb103
commit 5b755058f5
1409 changed files with 798983 additions and 798983 deletions

102
lcc/tst/stdarg.c Normal file → Executable file
View file

@ -1,51 +1,51 @@
#include <stdarg.h>
struct node { int a[4]; } x = {1,2,3,4};
print(char *fmt, ...);
main() {
print("test 1\n");
print("test %s\n", "2");
print("test %d%c", 3, '\n');
print("%s%s %w%c", "te", "st", 4, '\n');
print("%s%s %f%c", "te", "st", 5.0, '\n');
print("%b %b %b %b %b %b\n", x, x, x, x, x, x);
return 0;
}
print(char *fmt, ...) {
va_list ap;
va_start(ap, fmt);
for (; *fmt; fmt++)
if (*fmt == '%')
switch (*++fmt) {
case 'b': {
struct node x = va_arg(ap, struct node);
printf("{%d %d %d %d}", x.a[0], x.a[1], x.a[2], x.a[3]);
break;
}
case 'c':
printf("%c", va_arg(ap, char));
break;
case 'd':
printf("%d", va_arg(ap, int));
break;
case 'w':
printf("%x", va_arg(ap, short));
break;
case 's':
printf("%s", va_arg(ap, char *));
break;
case 'f':
printf("%f", va_arg(ap, double));
break;
default:
printf("%c", *fmt);
break;
}
else
printf("%c", *fmt);
va_end(ap);
}
#include <stdarg.h>
struct node { int a[4]; } x = {1,2,3,4};
print(char *fmt, ...);
main() {
print("test 1\n");
print("test %s\n", "2");
print("test %d%c", 3, '\n');
print("%s%s %w%c", "te", "st", 4, '\n');
print("%s%s %f%c", "te", "st", 5.0, '\n');
print("%b %b %b %b %b %b\n", x, x, x, x, x, x);
return 0;
}
print(char *fmt, ...) {
va_list ap;
va_start(ap, fmt);
for (; *fmt; fmt++)
if (*fmt == '%')
switch (*++fmt) {
case 'b': {
struct node x = va_arg(ap, struct node);
printf("{%d %d %d %d}", x.a[0], x.a[1], x.a[2], x.a[3]);
break;
}
case 'c':
printf("%c", va_arg(ap, char));
break;
case 'd':
printf("%d", va_arg(ap, int));
break;
case 'w':
printf("%x", va_arg(ap, short));
break;
case 's':
printf("%s", va_arg(ap, char *));
break;
case 'f':
printf("%f", va_arg(ap, double));
break;
default:
printf("%c", *fmt);
break;
}
else
printf("%c", *fmt);
va_end(ap);
}