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

 
 
> itoa
Евгений Германов...
сообщение Nov 11 2008, 13:15
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



в хайтеке пик18 попробовал вызвать itoa в полном соответствии с примером в качестве ответа получил
Error [499] C:\Program Files\HI-TECH Software\PICC-18\STD\9.51\lib\pic86l-c.lib(ramfail.obj); 0. undefined symbol:
_itoa(test38.obj)
Я не поленился и попробовал поискать упоминание о функции в папке пика18 ничего нет.
У меня вопрос что эта функция отсутствует в моей библиотеке или я в чем то заблуждаюсь
версия HT picc18 std9.51
упоминание о itoa я нашел только в пике std9.60 который без 18

#include <htc.h>
#include <pic18.h>
#include <float.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <ctype.h>




main()
{
char zz[10];


itoa(zz,1234,16);

}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Nov 11 2008, 18:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Код
#define NUMBER_OF_DIGITS 32

void _ultoa(unsigned long value, char* string, unsigned char radix)
{
unsigned char index;
char buffer[NUMBER_OF_DIGITS];  /* space for NUMBER_OF_DIGITS + '\0' */

  index = NUMBER_OF_DIGITS;

  do {
    buffer[--index] = '0' + (value % radix);
    if ( buffer[index] > '9') buffer[index] += 'A' - '9' - 1;
    value /= radix;
  } while (value != 0);

  do {
    *string++ = buffer[index++];
  } while ( index < NUMBER_OF_DIGITS );

  *string = 0;  /* string terminator */
}

void _ltoa(long value, char* string, unsigned char radix)
{
  if (value < 0 && radix == 10) {
    *string++ = '-';
    _ultoa(-value, string, radix);
  }
  else {
    _ultoa(value, string, radix);
  }
}
Go to the top of the page
 
+Quote Post
xemul
сообщение Nov 11 2008, 21:43
Сообщение #3



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(sergeeff @ Nov 11 2008, 21:51) *
Код
...

Это из серии "найдите хх различий"?smile.gif
Код
// ./sources/utoa.c из picc18
#include    <stdlib.h>
    
char *
ltoa(char * buf, long val, int base)
{
    char *    cp = buf;

    if(val < 0) {
        *buf++ = '-';
        val = -val;
    }
    ultoa(buf, val, base);
    return cp;
}
char *
ultoa(char * buf, unsigned long val, int base)
{
    unsigned    long    v;
    char        c;

    v = val;
    do {
        v /= base;
        buf++;
    } while(v != 0);
    *buf-- = 0;
    do {
        c = val % base;
        val /= base;
        if(c >= 10)
            c += 'A'-'0'-10;
        c += '0';
        *buf-- = c;
    } while(val != 0);
    return buf;
}

Вы не обращали внимания на код, получающийся из
Код
   c = val % base;
   val /= base;
?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Евгений Германович   itoa   Nov 11 2008, 13:15
- - sergeeff   Ну тогда может sprintf() в библиотеке есть?: Кодs...   Nov 11 2008, 16:07
|- - Евгений Германович   Цитата(sergeeff @ Nov 11 2008, 19:07) Ну ...   Nov 11 2008, 16:30
- - xemul   Включите в проект <path_to_picc18>/sources/i...   Nov 11 2008, 16:45
- - sergeeff   Каков вопрос - таков ответ. Человек говорит, что в...   Nov 12 2008, 06:53
- - Евгений Германович   Функции действительно не было я её нашел в не18 ха...   Nov 12 2008, 13:47
- - sergeeff   Функция sprintf(), как более универсальная, соотве...   Nov 12 2008, 16:03
|- - Евгений Германович   Цитата(sergeeff @ Nov 12 2008, 19:03) А в...   Nov 13 2008, 12:30
|- - xemul   Цитата(Евгений Германович @ Nov 13 2008, 15...   Nov 13 2008, 12:56
|- - Евгений Германович   Цитата(xemul @ Nov 13 2008, 15:56) manual...   Nov 15 2008, 14:04
|- - xemul   Цитата(Евгений Германович @ Nov 15 2008, 17...   Nov 15 2008, 15:45
- - Евгений Германович   А поподробнее pic40a-c.lib из писс стд 9.60: это ...   Nov 13 2008, 15:52
- - sergeeff   Это называется "А на фига я буду тратить врем...   Nov 13 2008, 16:02
- - Евгений Германович   Ваши замечания подействовали-читаю.Однако скоро за...   Nov 17 2008, 14:18


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:18
Рейтинг@Mail.ru


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