Confirm: safe and portable?
My guess is C struct elements are stored linearly, so this will be safe... but I'm not 100% certain.Code:int main( void ) { struct { int magic; void *data1; void *data2; ... void *datan; } args = { 0xdeadbeef }; myfunc( &args ); } myfunc( void *arg ) { int magic = ((struct { int magic; } *)arg)->magic; ... }