Страница 1 из 1
7FFFFFFF
Добавлено: 2009-01-13 13:02:50
kmb
Бить надо разработчиков линуксов,
ибо 2147483647=7FFFFFFF,
в числах со знаком это самое большое.
видимо функция atoi не понимает в юниксах если писать как безнаковое.
короче ладно заменю все на scanf("%u") так в любой ОС должно быть понятно. (с)
Вот такое вот замечание получил %)
Re: 7FFFFFFF
Добавлено: 2009-01-13 13:32:54
zg
а в чём трабла то?
Re: 7FFFFFFF
Добавлено: 2009-01-13 13:36:04
hizel
бред какой-то
и причём здесь линупс-девелоперы!?

Re: 7FFFFFFF
Добавлено: 2009-01-13 13:46:19
zg
hizel писал(а):и причём здесь линупс-девелоперы!?

кто-то же должен быть виноват -)))
Re: 7FFFFFFF
Добавлено: 2009-01-13 13:57:19
kmb
Я суть проблемы выложил возникающей на фре, при работе с одним приложением, писал его не я, просто программист так обосновал ошибку) Подумал может кому интересно будет...
Если я правильно понимаю:
Код: Выделить всё
видимо функция atoi не понимает в юниксах если писать как безнаковое.
то вот корень проблемы)
Re: 7FFFFFFF
Добавлено: 2009-01-13 14:11:36
hizel
видимо, невидимо, работа atoi определяется стандартом

где кусок кода !?
Re: 7FFFFFFF
Добавлено: 2009-01-13 14:52:36
zg
Код: Выделить всё
zg# cat 1.c
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char * sInt="2147483650";
printf("Is a string %s equal integer a %i?\n", sInt, atoi(sInt));
}
zg# cc 1.c -o 1.bin && ./1.bin
Is a string 2147483650 equal a integer 2147483647?
zg#
только причём тут беззнаковое? здесь имеет место быть
при чём тут знаки...
kmb писал(а):видимо функция atoi не понимает в юниксах если писать как безнаковое.
автор видимо не понимает как С устроено.