Message402910
The va_start macro just sets up a pointer to the first function parameter, e.g.:-
void func (int a, ...)
{
// va_start
char *p = (char *) &a + sizeof a;
}
which makes p point to the second parameter. The va_arg macro does this:-
void func (int a, ...)
{
// va_start
char *p = (char *) &a + sizeof a;
// va_arg
int i1 = *((int *)p);
p += sizeof (int);
// va_arg
int i2 = *((int *)p);
p += sizeof (int);
// va_arg
long i2 = *((long *)p);
p += sizeof (long);
} |
|
Date |
User |
Action |
Args |
2021-09-29 20:48:05 | pablogsal | set | recipients:
+ pablogsal, vstinner, serhiy.storchaka |
2021-09-29 20:48:05 | pablogsal | set | messageid: <1632948485.25.0.642906368836.issue45325@roundup.psfhosted.org> |
2021-09-29 20:48:05 | pablogsal | link | issue45325 messages |
2021-09-29 20:48:05 | pablogsal | create | |
|