On 2010.03.14 at 15:20:35 +0200, Hleb Valoshka wrote: > On 3/14/10, Ekimov Alexandr <[email protected]> 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", впервые в жизни увидели компьютер. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

