The va_start macro initializes the variable ap to the beginning of the argument list. The va_start_1 macro initializes ap to the address of an argument that is preceded by a known number of defined arguments. The printf function is an example of a C RTL function that contains a variable-length argument list offset from the beginning of the entire argument list. The variable-length argument list is offset by the address of the formatting string. When determining the value of the offset argument used in va_ start_1, the implications of the OpenVMS calling standard must be considered. On OpenVMS Alpha and Integrity server systems, each argument item is a quadword. NOTE When accessing argument lists, especially those passed to a subroutine (written in C) by a program written in another programming language, consider the implications of the OpenVMS calling standard. For more information about the OpenVMS calling standard, see the VSI C User's Guide for OpenVMS Systems or the VSI OpenVMS Calling Standard. The preceding version of va_start and va_start_1 is specific to the C RTL, and is not portable. The following syntax describes the va_start macro in the <stdarg.h> header file, as defined in the ANSI C standard: Format #include <stdarg.h> (ANSI C) void va_start (va_list ap, parmN);