#include <stdio.h>
void foo( unsigned char a,
unsigned char b,
unsigned char c,
... )
{
unsigned char *d1 = &c - 1;
unsigned char *d2 = &c - 1;
printf( "a: %p\nb: %p\nc: %p\n", (void *)&a,
(void *)&b,
(void *)&c );
*d1 );
*d2 );
}
int main(void)
{
foo( 1, 2, 3, 4 );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKdm9pZCBmb28oIHVuc2lnbmVkIGNoYXIgYSwgCgkgIHVuc2lnbmVkIGNoYXIgYiwgCgkgIHVuc2lnbmVkIGNoYXIgYywgCgkgIC4uLiAgKQp7Cgl1bnNpZ25lZCBjaGFyICpkMSA9ICZjIC0gMTsKCXVuc2lnbmVkIGNoYXIgKmQyID0gJmMgLSAxOwoKICAgICAgICBwcmludGYoICJhOiAlcFxuYjogJXBcbmM6ICVwXG4iLCAKICAgICAgICAgICAgICAgICh2b2lkICopJmEsIAogICAgICAgICAgICAgICAgKHZvaWQgKikmYiwgCiAgICAgICAgICAgICAgICAodm9pZCAqKSZjICk7CiAgICAgICAgcHJpbnRmKCAiZDE6ICVoaHVcbiIsIAoJCSpkMSApOwogICAgICAgIHByaW50ZiggImQyOiAlaGh1XG4iLCAKCQkqZDIgKTsKfQogCiAKIAppbnQgbWFpbih2b2lkKQp7CiAgICAgICAgZm9vKCAxLCAyLCAzLCA0ICk7CiAKIAogICAgICAgIHJldHVybiAwOwp9Cg==