реклама на сайте
подробности

 
 
> проблемы с atol
Integral
сообщение Aug 10 2008, 11:47
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Подскажыте пожалуйста почему не исполняется условые "atol(st)==nn" в следующем коде:

Код
    char *st;        
    long int nn=123;
    ltoa(nn, st);
    if(atol(st)==nn)
     {
      PORTD.1=1;
     }


притом что следующий код исполняется нормально:

Код
    char *st;        
    long int nn=123;
    itoa(nn, st);
    if(atoi(st)==nn)
     {
      PORTD.1=1;
     }


Мне нужен atol так как работаю с большыми числами...

Компилятор CodeVisionAVR

Сообщение отредактировал Integral - Aug 10 2008, 11:48
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Integral
сообщение Aug 10 2008, 15:42
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Цитата
Ну, во первых для того, чтобы функция сделала из long строку, ей конечно надо дать указатель, НО, указатель на существующую строку размером не менее ожидаемой или максимальной длины long-а, это 10 цифр + знак + завершающий 0. Итого,
надо объявить char st[12];
--- конец во-первых ----


Спасибо. Все работает....
сколько под винду програмировал с такими проблемами не встречался.... компилятор вроде должен был сам выделить нужное место под строку...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 10 2008, 18:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Integral @ Aug 10 2008, 17:42) *
сколько под винду програмировал с..

Это говорит только об одном, что программированием на "C" Вы вообще не занимались.
Цитата
например, прям в цикле фор немогу оголосить переменную что очень не удобно....

Ну если уж пользуетесь ворованными компиляторами, то стоит пользоваться максимально приличными.
Цитата
в функции задержки (например delay_us() не передаются переменные только нужно числом писать

А что в винде delay_us() появились smile.gif Прежде, чем продолжать что-то делать советую разабраться в том, чем delay_us() от sleep()
фатально отличается, равно чем отличается программирование в под операционную систему и голого контроллера.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Integral   проблемы с atol   Aug 10 2008, 11:47
- - zltigo   А чего это вдруг itoa/ltoa стали без радикса? Вызы...   Aug 10 2008, 12:17
- - Integral   в хелпе прототип выглядит следующим образом: Цита...   Aug 10 2008, 12:26
|- - zltigo   Цитата(Integral @ Aug 10 2008, 14:26) в х...   Aug 10 2008, 13:57
- - WHALE   Вы сами поняли поняли,что написали? 1.ltoa/ itoa н...   Aug 10 2008, 12:30
|- - Integral   Цитата1.ltoa/ itoa ничего не возвращает,соответсве...   Aug 10 2008, 12:38
- - YAM   Ну, во первых для того, чтобы функция сделала из l...   Aug 10 2008, 13:59
|- - aaarrr   Цитата(Integral @ Aug 10 2008, 19:42) ско...   Aug 10 2008, 15:47
|- - WHALE   Цитата(zltigo @ Aug 10 2008, 22:13) напри...   Aug 10 2008, 19:17
- - Integral   я заметил много недостатков CodeVisionAVR в отличи...   Aug 10 2008, 16:03
- - alex1979   были проблемы с atoi. (использую winAvr). Функция ...   Aug 10 2008, 18:22
|- - demiurg_spb   Цитата(alex1979 @ Aug 10 2008, 22:22) был...   Aug 11 2008, 07:56
- - Integral   ЦитатаЭто говорит только об одном, что программиро...   Aug 10 2008, 18:48
|- - zltigo   Цитата(Integral @ Aug 10 2008, 20:48) Мож...   Aug 10 2008, 19:12
- - Integral   Цитата(zltigo @ Aug 10 2008, 22:12) Полаг...   Aug 10 2008, 20:20
- - sergeeff   Ну не нравится библиотечная функция, так найди ее ...   Aug 11 2008, 08:08
- - Integral   Всем очень благодарен за ответы. Все отлично работ...   Aug 12 2008, 17:06


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01393 секунд с 7
ELECTRONIX ©2004-2016