Re: gcc bug?
> > а править мейк тоже нехорошо (пакет ведь собираем, а на другой системе
> > могут не пересобрать)
> > и как быть?
>
> make CC=gcc3.4 CFLAGS='-pipe -O3 -g0 -w' и так далее в debian/rules
>
> configure из среды берет или также как make в зависимости от версии.
>
> Наличие gcc3 проверять перед тем.
>
> > PPS: кстати, знатоки плюсов, объясните мне смысл конструкции:
> > int a[0]={};
> >
> > это что просто указатель, который можно юзать только как указатель?
>
> Это не плюсы, это C.
>
> Это массив с нулевой длиной и его инициализация.
>
> Указатели и массивы - совсем разные вещи. Путаница у вас "классическая",
> хорошо известная.
то что массив я вижу
я не понимаю смысла
в чем смысл масива с нулевой длиной кроме как использование
идентификатора как указателя?
можете привести пример?
C не поддерживает динамическое изменение размеров массива и где можно
применить массив с нулевой длиной я понять не могу
>
> > в смысле компилятор будет ругаться на применение любого индекса с ним?
> > или что?
>
> Не обязан.
>
> Эту конструкцию применяют обычно в конце структур заголовок - данные,
> чтобы можно было сослаться на начало данных без извращений с адресной
> арифметикой.
то есть что-то вроде
struct
{
unsigned char byte[0];
int data1;
char data2;
...
} a;
чтобы обращаться к a.data1 как к a.byte[0], a.byte[1]... ?
и что компилятор ТАКОЕ допускает?!
по моему это большее извращение чем ((unsigned char *)&a)[index]
> Если виртуальная память закончилась, она ненастоящая.
наверно китайская подделка?
;)
Reply to:
- References:
- Re: gcc bug?
- From: "Dmitry E. Oboukhov" <dimka@avanto.org>
- Re: gcc bug?
- From: "Dmitry A. Fedorov" <D.A.Fedorov@inp.nsk.su>