On Mon, 8 Oct 2012, Dmitry E. Oboukhov wrote:
#define SOMETING(__name, __size) \ struct { \ struct something s; \ unsigned items[__size]; \ } __attribute__((packed)) __name = { \ .s = { \ .size = __size, \ } \ }
А если так: #define SOMETING(__name, __size) \ struct { \ struct something s; \ unsigned items[__size]; \ } __attribute__((packed)) __name##_tmp = { \ .s = { \ .count = __size, \ } \ }; \ struct something* __name = &(__name##_tmp.s); Дальше работать с __name только как с указателем. Все равно такую структуру можно передавать в функцию только как указатель. Проверено, копируется неверно. Ю.