Отговори на тема  [ 17 мнения ]  Отиди на страница Предишна  1, 2
Проблеми с функцията long int atol(char *str) 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Дек 14, 2004 1:31 pm
Мнения: 3849
Мнение 
Код:
123456 = 0x1E240
57920 = 0xE240


Т.е. младшите два байта на 123456 предствляват числото 57920.
Код:
...."Counter=%u", Counter...


каства 32bit-овата променлива Counter до 16bit-a, защото %u се отнася до unsigned int, което са 16bit-а.


Пет Май 04, 2007 5:46 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение 
Gogo написа:
...Да, сериозно питам и сега вече, с последното си обяснение ме хвърли в размисъл. Може ли да го обясниш като за новобранец! Ако може с примерче...


по-горе колегата @HCL ти го е обяснил :)

а и аз по-горе май бях писал че не е работа на компилатора да следи какво привиш с аргументите на функции декларирани с "..." !

за да схаванеш кашата - ето ти пример:
printf ("%u, %lu, %s %s", 12345, 12345, "Hello", "Gogo");

ако приемем че за комп. 12345 е short; а (char *) е 2 байта то:
компилатора ще натъпче в стека :2+2+2+2 байта
при интерпретацията на "%u, %lu, %s %s" - printf ще очаква 2+4+2+2 байта
и така особенно при %s става весело :)

за да си сигурен че ще видиш "Hello Gogo" ще трябва:
printf ("%u, %lu, %s %s", (short) 12345, (long) 12345, "Hello", "Gogo");

пак: на всеки %u, %ul, %i, ..... трябва да съответства аргумент от същия тип (най-вече размер в байтове :))!
ако един от арументите а опетлан - се отразява на всички след него и бозата е пълна :)

от това по-просто май не мога го обясня :)


Пет Май 04, 2007 6:48 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 17 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни