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: