[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: а кто C хорошо знает?



В Mon, 8 Oct 2012 12:41:05 +0400
"Dmitry E. Oboukhov" <unera@debian.org> пишет:

> имеется некая структурка
> 
> struct something {
>     ...
> 
>     unsigned count;
>     unsigned element[0];
> };
> 
> то есть в поле count сказано сколько элементов будет после структурки.
> ну и обращение к ним идет так:
> 
> for (i = 0; i < s->count; i++) {
>     s->elements[i] = i;
> }
> 
> 
> теперь когда мы это хотим саллоцировать, то пишем такой аллокатор
> 
> struct something * some_alloc(unsigned size) {
>     return malloc(sizeof(struct something) + sizeof(unsigned) * size);
> }
> 
> 
> а вот если появилась необходимость саллоцировать такой объект
> статически, как быть?
полиморфизм братюня)) полиморфизм.. лучше использовать class{:}} хех)

> 
> хочется макрос 
> 
> #define SOMETHING(name, size) ...
чот не дошло, а при чем тутя структура something O_o

> 
> чтобы пользователь мог сказать
> 
> void foo(void) {
>     static SOMETHING(name, 5);
>     SOMETHING(name2, 10);
> }
чото помница Сашога определял константы вне процедуры словом global %))
хех)

> 
> и получить саллоцированный на стадии компиляции (или в стеке) такой
> объект?
> 
> 
void foo(void) {
     asm('PUSH *something');
#не?
}


Reply to: