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

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



On 2012.10.08 at 15:33:45 +0400, Dmitrii Kashin wrote:

> Victor Wagner <vitus@wagner.pp.ru> writes:
> 
> > On 2012.10.08 at 12:41:05 +0400, Dmitry E. Oboukhov wrote:
> >
> >> а вот если появилась необходимость саллоцировать такой объект
> >> статически, как быть?
> >
> > Завести  union. С первым вариантом struct something и вторым - массивом
> > требуемой длины. (учитывая sizeof(struct something).
> 
> Элегантность этого решения настолько впечатлила меня, что я даже
> озаботился написанием примера. Вот он:

Кстати, тут пришло в голову еще одно решение - использовать alloca.
Это не совсем статическая структура, а явное выделение памяти в стеке.
Но тем не менее.

> 
> Замечу, что в книге Кернигана и Ритчи "Язык программирования Си"
> подобных фишек не описывалось. Виктор, Вы не подскажете, где можно
> почитать о подобных трюках?

Есть очень хорошая книга Питера ван дер Линдена "Expert C programming".
Там, насколько я помню, было очень доходчиво написано, какими граблями
чревато использование подобных трюков.


Reply to: