This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pablogsal
Recipients pablogsal, serhiy.storchaka, vstinner
Date 2021-09-29.20:48:05
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1632948485.25.0.642906368836.issue45325@roundup.psfhosted.org>
In-reply-to
Content
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);
 }
History
Date User Action Args
2021-09-29 20:48:05pablogsalsetrecipients: + pablogsal, vstinner, serhiy.storchaka
2021-09-29 20:48:05pablogsalsetmessageid: <1632948485.25.0.642906368836.issue45325@roundup.psfhosted.org>
2021-09-29 20:48:05pablogsallinkissue45325 messages
2021-09-29 20:48:05pablogsalcreate