Цитата(Andreas1 @ May 2 2008, 20:12)

поскольку только осваиваюсь в сях, а ситуация интересная, посоветовался с опытным человеком
Что значит "по старому стандарту"?
По K&R первого издания, являвшимся "стандартом де-факто", но не "де-юре"?
Я же привёл выше цитату из стандарта 1989 года про то, что cast не есть lvalue.
Другое дело, что многие компиляторы до конца 90-ых (а борлданд - так похоже и до середины 2010-ых :-) ) так и не удосужились привести себя в соответствие стандарту 1989 года, как и сейчас не все и не всё делают согласно стандарту 1999 года...
Цитата(AHTOXA @ May 2 2008, 20:35)

Это то же, что предлагал ReAl немного выше.
Это то де по сути, но прозрачнее записано.
То, что написал я - можно подрихтовать, вставив вместо sizeof свой макрос, который как-то корректирует размер - например, в зависимости от параметра, задающего выравнивание.
У того же борланда, насколько я помню, так сделан макрос (а не __builtin) VA_ARG (stdarg.h).