This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/samples/clibexam/va_arg.c

38 lines
1,002 B
C
Raw Normal View History

#include <stdio.h>
#include <stdarg.h>
static void test_fn(
const char *msg, /* message to be printed */
const char *types, /* parameter types (i,s) */
... ) /* variable arguments */
{
va_list argument;
int arg_int;
char *arg_string;
const char *types_ptr;
types_ptr = types;
printf( "\n%s -- %s\n", msg, types );
va_start( argument, types );
while( *types_ptr != '\0' ) {
if (*types_ptr == 'i') {
arg_int = va_arg( argument, int );
printf( "integer: %d\n", arg_int );
} else if (*types_ptr == 's') {
arg_string = va_arg( argument, char * );
printf( "string: %s\n", arg_string );
}
++types_ptr;
}
va_end( argument );
}
void main( void )
{
printf( "VA...TEST\n" );
test_fn( "PARAMETERS: 1, \"abc\", 546",
"isi", 1, "abc", 546 );
test_fn( "PARAMETERS: \"def\", 789",
"si", "def", 789 );
}