| Title: | ** Hackers ** | 
| Moderator: | XDELTA::HOFFMAN | 
| Created: | Sun Jan 31 1988 | 
| Last Modified: | Tue May 27 1997 | 
| Last Successful Update: | Fri Jun 06 1997 | 
| Number of topics: | 1838 | 
| Total number of notes: | 13578 | 
    
    Has anyone come across a version of the following macro that would
    work on the alpha - a vax application with C code that we are porting 
    uses this macro all over the place. 
    
    Is there a "va_count" macro for Alpha ... 
    
    thanks for any help, 
    John. 
    
    
    
/*        V A R I A B L E   A R G U M E N T   L I S T   M A C R O S           */
/* NOTE: THE FOLLOWING MACROS ALL ASSUME THAT AN ARG LIST IS COMPOSED SOLELY
 * OF LONGWORD ARG ADDRESSES. 
 */
/* ARG_COUNT is an alternative to the va_count macro; given the address of the
 * first arg in an arg list, it yields the arg count.
 */	
#define ARG_COUNT(alist) (*(((long *) &(alist))-1))
    
| T.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 1833.1 | va_count | CSC64::BLAYLOCK | If at first you doubt,doubt again. | Fri Mar 28 1997 19:06 | 11 | 
| It is in <varargs.h> for DEC C on both VAX and Alpha OpenVMS platforms as well as for the VAXC Compiler. So just '#include <varargs.h>' in your code (and get rid of your definition). btw, the .0 definition is incorrect because the argument count is just a byte, not a longword. The other 24bits are/were 'reserved to Digital software'. | |||||
| 1833.2 | TURRIS::DECC For C Questions... | XDELTA::HOFFMAN | Steve, OpenVMS Engineering | Mon Mar 31 1997 12:32 | 7 | 
| : Is there a "va_count" macro for Alpha ... TURRIS::DECC is a better spot for standard C questions -- the variable argument list information is definitely documented in the DEC C manuals. (Standard variable-length argument list processing uses the stdarg.h module, not <varargs.h>. The "va_count" extension is not portable.) | |||||