/*
//  VarArgExample; Example of using DEC C variable-argument calls.
//  Author: Steve Hoffman, DEC, OpenVMS Engineering, 10-Jul-1997.
*/
#include <ssdef.h>
#include <stdarg.h>
#include <stdio.h>
#include <stsdef.h>

int VarArgExample( int FixedArg,... )
  {
  va_list ap;
  int ArgCount;
  int JRandomArg;
  int i;
  va_start( ap, FixedArg );
  /* va_count is a DEC C extension... */
  va_count( ArgCount );
  printf("VarArgExample( %d", FixedArg );
  for ( i = 1; i < ArgCount; i++ )
    {
    printf(",");
    JRandomArg = va_arg( ap, int );
    printf(" %d", JRandomArg );
    }
  printf(" );\n");
  va_end( ap );
  return SS$_NORMAL;
  }
int main()
  {
  int RetStat;
  printf("VarArgExample example program\n");
  RetStat = VarArgExample( 1 );
  if (!$VMS_STATUS_SUCCESS( RetStat )) return RetStat;
  RetStat = VarArgExample( 1, 2 );
  if (!$VMS_STATUS_SUCCESS( RetStat )) return RetStat;
  RetStat = VarArgExample( 1, 2, 3 );
  if (!$VMS_STATUS_SUCCESS( RetStat )) return RetStat;
  RetStat = VarArgExample( 1, 2, 3, 4 );
  if (!$VMS_STATUS_SUCCESS( RetStat )) return RetStat;
  return SS$_NORMAL;
  }
