Re: GCC генерирует неправильный код?
On 2010.03.14 at 15:20:35 +0200, Hleb Valoshka wrote:
> On 3/14/10, Ekimov Alexandr <toekimov@gmail.com> wrote:
> >> fscanf(f, "%u", &n);
> > Я с С не знаю, но знаком чуток с С++. Скорее всего ошибка в вашем коде, gcc
> > лажает редко. вы объявляете переменную типа size_t, а потом fscanf
> > говорите,
> > что она unsigned int. Для AMD64 size_t будет иметь размер 64 бита(как и
> > указатели) ,а unsigned int 32 бита. Проверьте это.
>
> Мне почему-то всегда казалось, что size_t -- это unsigned int. Надо
> найти ту книгу Шилда, по которой я учил Си, тогда не было ни Си99, ни
> АМД 64 бит.
И выкинуть ее в помойку. А лучше сжечь, чтобы бомжи в помойке не нашли и
не нахватались таких глупостей.
В языке C никто никому ничего не обещал про размеры разных целых типов,
кроме того что sizeof(char) <= sizeof(short) <= sizeof(int) <=
sizeof(long).
Архитектуры, на которых sizeof(char) == sizeof(short) == sizeof(long),
насколько я помню, существовали задолго до того, как авторы подобных
книг, считающие что "процессор может быть любым, если он совместим с
i386", впервые в жизни увидели компьютер.
Reply to: