On Mon, Oct 08, 2012 at 12:41:05PM +0400, Dmitry E. Oboukhov wrote:
> хочется макрос 
> 
> #define SOMETHING(name, size) ...
> 
> чтобы пользователь мог сказать
> 
> void foo(void) {
>     static SOMETHING(name, 5);
>     SOMETHING(name2, 10);
> }
> 
> и получить саллоцированный на стадии компиляции (или в стеке) такой объект?

Взять C++.

На C можно покостылять вроде создания вместо структуры массива какого-то и
дальше кастовать. Чтоб вышло что-то типа такого:

        static char struct_data_container[sizeof(your_struct)+...];
        your_struct *struct_ptr = (your_struct*)struct_data_container;

Или еще какой подобный ужас :)

-- 
WBR, Dmitry

Attachment: signature.asc
Description: Digital signature

Ответить