Домашняя страница библиотеки_c AVR

Синтаксис языка C

Библиотека языка C GNU glibc

 Страницы развития библиотеки_с AVR

Главная страница

Инструкция пользователя

Содержание библиотеки_c

Часто задаваемые вопросы

Содержание по алфавиту

Демонстрационные проекты


<stdlib.h>: Общие утилиты

Детальное Описание

 #include <stdlib.h> 

Этот файл подключает основные макроопределения C и соответствует стандарту ISO, плюс некоторые AVR расширения.

Структуры Данных

struct  

div_t

struct  

ldiv_t

 

Не-ISO C функции.

char * 

ltoa (long int __val, char *__s, int __radix)

char * 

utoa (unsigned int __val, char *__s, int __radix)

char * 

ultoa (unsigned long int __val, char *__s, int __radix)

long 

random (void)

void 

srandom (unsigned long __seed)

long 

random_r (unsigned long *ctx)

char * 

itoa (int __val, char *__s, int __radix)

#define 

RANDOM_MAX   0x7FFFFFFF

 

Конверсионные функции для двойных параметров.

Обратите внимание, что эти функции не расположены в заданной по умолчанию библиотеке, libc.a, а в математической библиотеке, libm.a. Так при соединении приложения, должна быть определена опция -lm.

char * 

dtostre (double __val, char *__s, unsigned char __prec, unsigned char __flags)

char * 

dtostrf (double __val, char __width, char __prec, char *__s)

#define 

DTOSTR_ALWAYS_SIGN   0x01

#define 

DTOSTR_PLUS_SIGN   0x02

#define 

DTOSTR_UPPERCASE   0x04

 

Макроопределения

#define 

RAND_MAX   0x7FFF

 

Типоопределение

typedef int(*) 

__compar_fn_t (const void *, const void *)

 

Функции

__inline__ void 

abort (void) __ATTR_NORETURN__

int 

abs (int __i) __ATTR_CONST__

long 

labs (long __i) __ATTR_CONST__

void * 

bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, int(*__compar)(const void *, const void *))

div_t 

div (int __num, int __denom) __asm__("__divmodhi4") __ATTR_CONST__

ldiv_t 

ldiv (long __num, long __denom) __asm__("__divmodsi4") __ATTR_CONST__

void 

qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar)

long 

strtol (const char *__nptr, char **__endptr, int __base)

unsigned long 

strtoul (const char *__nptr, char **__endptr, int __base)

long 

atol (const char *s) __ATTR_PURE__

int 

atoi (const char *s) __ATTR_PURE__

void 

exit (int __status) __ATTR_NORETURN__

void * 

malloc (size_t __size) __ATTR_MALLOC__

void 

free (void *__ptr)

void * 

calloc (size_t __nele, size_t __size) __ATTR_MALLOC__

void * 

realloc (void *__ptr, size_t __size) __ATTR_MALLOC__

double 

strtod (const char *__nptr, char **__endptr)

double 

atof (const char *__nptr)

int 

rand (void)

void 

srand (unsigned int __seed)

int 

rand_r (unsigned long *ctx)

 

Переменные

size_t 

__malloc_margin

char * 

__malloc_heap_start

char * 

__malloc_heap_end


Документация макроопределений

#define DTOSTR_ALWAYS_SIGN   0x01

Бит значение которое может быть передано в flags к dtostre().

#define DTOSTR_PLUS_SIGN   0x02

Бит значение которое может быть передано в flags к dtostre().

#define DTOSTR_UPPERCASE   0x04

Бит значение которое может быть передано в flags к dtostre().

#define RAND_MAX   0x7FFF

Определение:    #define  RAND_MAX     0x7FFF

Описание:    Наибольшее значение, которое может быть сгенериро­вано функцией rand ().

Наибольшее значение которое может быть сгенерировано rand().

#define RANDOM_MAX   0x7FFFFFFF

Определение:     #define   RANDOM_MAX     0x7FFFFFFF

Описание:    Наибольшее значение, которое может быть сгенериро­вано функцией random ().

Наибольшее значение которое может быть сгенерировано random().


Документация Типоопределения

typedef int(*) __compar_fn_t(const void *, const void *)

Comparision тип функции для qsort(), только для удобства.


Документация Функций

__inline__ void abort

(

void 

 

 ) 

 

Заголовок:    void  abort (void)

Функция abort() вызывает прерывание работы программы.

В среде AVR, выполнение приостанавливается введением бесконечного цикла.

Пример использования:     if   (i<0)   abort ();

int abs

(

int 

__i

 ) 

 

Функция abs() вычисляет абсолютное значение целого числа i.

Примечание:

Функции abs() и labs() являются builtins gcc.

double atof

(

const char * 

__nptr

 ) 

 

Функция atof() конвертирует начальную часть строки, на которую указывают nptr удваивая представление.

Это эквивалентно вызову

 strtod(nptr, (char **)NULL); 

int atoi

(

const char * 

s

 ) 

 

Преобразует строку к целому числу.

Функция atoi () конвертирует начальную часть строки, на которую указывают s к целочисленному представлению. В отличие от

 (int)strtol(s, (char **)NULL, 10); 

эта функция не обнаруживает переполнение (errno не изменен и значение результата не предсказуемо), использует меньшую память (перепрограммируемую и стек) и работает более быстро.

long atol

(

const char * 

s

 ) 

 

Преобразует строку в целочисленное представление.

Функция atol() преобразовывает начальную часть строки, на которую указывают s к длинному целочисленному представлению. В отличие от

 strtol(s, (char **)NULL, 10); 

эта функция не обнаруживает переполнение (errno не изменен и значение результата не предсказуемо), использует меньшую память (перепрограммируемую и стек) и работает более быстро.

Пример использования:    #include  <stdio.h>

#include <stdlib.h>

char str[6] ;

int x ;

void main(void)

{

gets(str);

x = atoi(str);

printf("x=%d", x) ;

}

void* bsearch

(

const void * 

__key,

 

 

 

const void * 

__base,

 

 

 

size_t 

__nmemb,

 

 

 

size_t 

__size,

 

 

 

int(*)(const void *, const void *) 

__compar

 

 

)

 

 

 

Функция bsearch() ищет массив объектов nmemb, начальным членом которого указывают ядро, для члена, который соответствует объекту, на который указывают key. Размер каждого члена массива определен size.

Содержание массива должно быть в возрастании сортированным порядком согласно функции сравнения, на которую упоминают compar.  Подпрограмма compar, как ожидается, будет иметь два параметра, которые указывают на ключевой объект и члену массива, в том порядке, и должны возвратить целое число меньше чем, равняться, или больше чем нуль, если ключевой объект найден, соответственно, быть меньше чем, соответствовать, или больше чем член массива.

Функция bsearch() возвращает указатель на члена соответствия массива, или нулевого  указателя, если никакое соответствие не найдено. Если два члена сравниваются как равный, какой член согласован, неопределенно.

void* calloc

(

size_t 

__nele,

 

 

 

size_t 

__size

 

 

)

 

 

 

Размещает в памяти nele элементов размером size каждый и заполняет выделенную область нулями.

Пример использования:    calloc (2,   10);

div_t div

(

int 

__num,

 

 

 

int 

__denom

 

 

)

 

 

 

Заголовок: div_t div(int num, int denom)

Описание: Вычисляет значение num/denom и возвращает частное и остаток в структуре div_t, содержащей два поля типа int под названием quot и rem.

Пример использования:    div_t   div_result;

div_result   =   div(5,    2); //div_result.quot   =   2;  

div  result.rem  =   1;

char* dtostre

(

double 

__val,

 

 

 

char * 

__s,

 

 

 

unsigned char 

__prec,

 

 

 

unsigned char 

__flags

 

 

)

 

 

 

Заголовок;    char*   dtostre (double  val,   char   *s, unsigned char prec, unsigned char flags)

Описание; Преобразует значение val в строковое представление, которое сохраняется в переменной, переданной по ссылке в качестве параметра s. Преобразование вы­полняется в формате " [-] d. ddde+dd", где количество символов после десятичной точки определяется пара­метром prec. Если prec = 0, то десятичная точка в полученной строке отсутствует. Параметр flags может содержать комбинацию следующих констант:

- dtostre_uppercase — знак экспоненты отобража­ется в верхнем регистре (т.е. "Е", а не "е");

- DTOSTRE_ALWAYS_SIGN - перед положительными числами всегда вставляется пробел;

-  dtostre__plus_SIGN — перед положительными чис­лами всегда вставляется знак "+".

Функция  возвращает указатель  на  преобразованную строку s.

Пример использования;    char  s [ ]

s = dtostre(32.567, s, 3,

DTOSTRE_UPPERCASE | DTOSTRE_PLUS_SIGN);

//s = "+3.257E+01"

Функция dtostre() конвертирует двойное значение, прошел в val into an ASCII representation that will be stored under s. The caller is responsible for providing sufficient storage in s.

Conversion is done in the format "[-]d.ddde±dd" where there is one digit before the decimal-point character and the number of digits after it is equal to the precision prec; if the precision is zero, no decimal-point character appears. If flags has the DTOSTRE_UPPERCASE bit set, the letter 'E' (rather than 'e' ) will be used to introduce the exponent. The exponent always contains two digits; if the value is zero, the exponent is "00".

If flags has the DTOSTRE_ALWAYS_SIGN bit set, a space character will be placed into the leading position for positive numbers.

If flags has the DTOSTRE_PLUS_SIGN bit set, a plus sign will be used instead of a space character in this case.

Функция dtostre() возвращает указатель на преобразованную строку s.

char* dtostrf

(

double 

__val,

 

 

 

char 

__width,

 

 

 

char 

__prec,

 

 

 

char * 

__s

 

 

)

 

 

 

Заголовок:    char*   dtostrf(double  val,   char  width,   char  prec,    char   *s)

Описание: Преобразует значение val в строковое представление, которое сохраняется в переменной, переданной по ссылке в качестве параметра s. Преобразование вы­полняется в формате "[-]d.ddd". Минимальная дли­на полученной строки, включая десятичную точку и возможный знак "-", определяется параметром width, а количество символов после десятичной точки — па­раметром prec. Функция возвращает указатель на преобразованную строку s.

Пример использования:    char  s [ ] ;

s   =  dtostrf(-32.567,    6,    1,    s); //s   =   "-32.60"

The dtostrf() function converts the double value passed in val into an ASCII representationthat will be stored under s. The caller is responsible for providing sufficient storage in s.

Conversion is done in the format "[-]d.ddd". The minimum field width of the output string (including the '.' and the possible sign for negative values) is given in width, and prec determines the number of digits after the decimal sign.

The dtostrf() function returns the pointer to the converted string s.

void exit

(

int 

__status

 ) 

 

Функция exit() прерывает работу приложения. Так как нет никакой среды, чтобы возвратиться к, status игнорируется, и выполнение кода в конечном счете достигнет бесконечного цикла, таким образом фактически останавливается вся обработка кода.

Пример использования:    if   (i<0)   exit(0);

В контексте C++, глобальные деструкторы будут вызывать перед останавливающимся выполнением.

void free

(

void * 

__ptr

 ) 

 

Функция free() делает область памяти, на которую ссылается ptr, дос­тупной для размещения других объектов. Если ptr == NULL, то никаких действий не происходит.

Пример использования:    if   (i<0)   exit(O);

char* itoa

(

int 

__val,

 

 

 

char * 

__s,

 

 

 

int 

__radix

 

 

)

 

 

 

Заголовок:    char*   itoa(int   val,   char   *s,    int   radix)

Описание: Преобразует целочисленное значение val в строковое представление, которое сохраняется в переменной, пе­реданной по ссылке в качестве параметра s. Преобра­зование выполняется на основании значения параметра radix. Если radix == 2, то будет получено двоичное представление числа. Если radix > 10, то число 10 бу­дет обозначено в полученной строке символом "а", число 11 — "b" и т.д. Функция возвращает указатель на преобразованную строку s.

Пример использования:    char  s[];

s   =   itoa(26,    s,    16);    //s   =   "la"

Пример использования:    char  s [ ] ;

s   =   ltoa (2604623,    s,    16);    //s   =   "27be4f"

Convert an integer to a string.

The function itoa() converts the integer value from val into an ASCII representation that will be stored under s. The caller is responsible for providing sufficient storage in s.

Note:

The minimal size of the buffer s depends on the choice of radix. For example, if the radix is 2 (binary), you need to supply a buffer with a minimal length of 8 * sizeof (int) + 1 characters, i.e. one character for each bit plus one for the string terminator. Using a larger radix will require a smaller minimal buffer size.

Warning:

If the buffer is too small, you risk a buffer overflow.

Conversion is done using the radix as base, which may be a number between 2 (binary conversion) and up to 36. If radix is greater than 10, the next digit after '9' will be the letter 'a'.

If radix is 10 and val is negative, a minus sign will be prepended.

The itoa() function returns the pointer passed as s.

long labs

(

long 

__i

 ) 

 

Заголовок:    long  int   abs(long   int  X)

Описание:    Возвращает модуль целого числа X.

Пример использования:     signed  long  int   target,   actual;

unsigned  long   int   error;

error   =  abs(target-actual);

The labs() function computes the absolute value of the long integer i.

Note:

The abs() and labs() functions are builtins of gcc.

ldiv_t ldiv

(

long 

__num,

 

 

 

long 

__denom

 

 

)

 

 

 

Заголовок: ldiv_t ldiv(long int num, long int denom)

Описание: Вычисляет значение num/denom и возвращает частное и остаток в структуре ldivt, содержащей два поля типа long int под названием quot и rem.

Пример использования:    ldiv_t   res;

res = ldiv(145000, 42560);

//res.quot = 3;  res.rem = 17320

The ldiv() function computes the value num/denom and returns the quotient and remainder in a structure named ldiv_t that contains two long integer members named quot and rem.

char* ltoa

(

long int 

__val,

 

 

 

char * 

__s,

 

 

 

int 

__radix

 

 

)

 

 

 

Convert a long integer to a string.

The function ltoa() converts the long integer value from val into an ASCII representation that will be stored under s. The caller is responsible for providing sufficient storage in s.

Note:

The minimal size of the buffer s depends on the choice of radix. For example, if the radix is 2 (binary), you need to supply a buffer with a minimal length of 8 * sizeof (long int) + 1 characters, i.e. one character for each bit plus one for the string terminator. Using a larger radix will require a smaller minimal buffer size.

Warning:

If the buffer is too small, you risk a buffer overflow.

Conversion is done using the radix as base, which may be a number between 2 (binary conversion) and up to 36. If radix is greater than 10, the next digit after '9' will be the letter 'a'.

If radix is 10 and val is negative, a minus sign will be prepended.

The ltoa() function returns the pointer passed as s.

void* malloc

(

size_t 

__size

 ) 

 

Функция malloc() выделяет zize байт памяти. В случае неудачи возвращает NULL.

Обратите внимание это malloc() делает нет инициализирует возвращенную память, чтобы обнулить байты.

См. главу о malloc() usage для подробностей выполнения.

Пример использования:    calloc(2,   10);

void qsort

(

void * 

__base,

 

 

 

size_t 

__nmemb,

 

 

 

size_t 

__size,

 

 

 

__compar_fn_t 

__compar

 

 

)

 

 

 

Функция qsort() модификация разделение -обмен сорт, или быстрый сорт.

Функция qsort() сортирует массив объектов nmemb, начальным членом которого указывают ядро. Размер каждого объекта определен size. Содержание ядра массива сортировано в возрастающем порядке согласно функции сравнения, на которую указывают compar, который требует двух параметров, указывающих на сравниваемые объекты.

Функция сравнения должна возвратить целое число меньше чем, равный, или больше чем нуль, если первый параметр, как полагают, является соответственно меньше чем, равняйтесь, или больше чем второй.

int rand

(

void 

 

 ) 

 

Заголовок:     int   rand (void)

Описание: Возвращает псевдослучайное число в диапазоне от 0 до значения RAND_MAX. Начальное число для генера­ции псевдослучайной последовательности задается с помощью функции srand (). По умолчанию, это число равно 1.

Пример использования:    for   (int  i=l;   i<=10;   i++)

{

printf("Number%d = %d", i, rand());

}

The rand() function computes a sequence of pseudo-random integers in the range of 0 to RAND_MAX (as defined by the header file <stdlib.h>).

 

Заголовок:    void  srand (unsigned  int   seed)

Описание:    Устанавливает начальное число для генерации псевдо­случайной последовательности

Пример использования:    for   (int   i=l;   i<=10;   i++)

{

srand(i);

printf("Number%d = %d", i, rand());

}

The srand() function sets its argument seed as the seed for a new sequence of pseudo-random numbers to be returned by rand(). These sequences are repeatable by calling srand() with the same seed value.

If no seed value is provided, the functions are automatically seeded with a value of 1.

In compliance with the C standard, these functions operate on int arguments. Since the underlying algorithm already uses 32-bit calculations, this causes a loss of precision. See random() for an alternate set of functions that retains full 32-bit precision.

int rand_r

(

unsigned long * 

ctx

 ) 

 

Variant of rand() that stores the context in the user-supplied variable located at ctx instead of a static library variable so the function becomes re-entrant.

long random

(

void 

 

 ) 

 

Заголовок:     long  int   rand (void)

Описание:    Возвращает псевдослучайное число в диапазоне от 0 до

значения RANDOM_MAX. Начальное число для генерации псевдослучайной последовательности задается с помо­щью функции srandom(). По умолчанию, это число равно 1.

Пример использования:    for   (int  i=l;   i<=10;   i++)

{

printf("Number%d = %d", i, random());

}

The random() function computes a sequence of pseudo-random integers in the range of 0 to RANDOM_MAX (as defined by the header file <stdlib.h>).

The srandom() function sets its argument seed as the seed for a new sequence of pseudo-random numbers to be returned by rand(). These sequences are repeatable by calling srandom() with the same seed value.

If no seed value is provided, the functions are automatically seeded with a value of 1.

long random_r

(

unsigned long * 

ctx

 ) 

 

Variant of random() that stores the context in the user-supplied variable located at ctx instead of a static library variable so the function becomes re-entrant.

void* realloc

(

void * 

__ptr,

 

 

 

size_t 

__size

 

 

)

 

 

 

The realloc() function tries to change the size of the region allocated at ptr to the new size value. It returns a pointer to the new region. The returned pointer might be the same as the old pointer, or a pointer to a completely different region.

The contents of the returned region up to either the old or the new size value (whatever is less) will be identical to the contents of the old region, even in case a new region had to be allocated.

It is acceptable to pass ptr as NULL, in which case realloc() will behave identical to malloc().

If the new memory cannot be allocated, realloc() returns NULL, and the region at ptr will not be changed.

void srand

(

unsigned int 

__seed

 ) 

 

Pseudo-random number generator seeding; see rand().

void srandom

(

unsigned long 

__seed

 ) 

 

Заголовок:    void  srand (unsigned  long  int   seed) Описание:    Устанавливает начальное число для генерации псевдо­случайной последовательности

Пример использования:    for   (int  i=l;   i<=10;   i++)

{

srandom(i);

printf("Number%d = %d", i, random());

}

Pseudo-random number generator seeding; see random().

double strtod

(

const char * 

__nptr,

 

 

 

char ** 

__endptr

 

 

)

 

 

 

Заголовок: float   strtod(char   *s,    char   *endptr)

Описание: Преобразует строку, на которую указывает s, в веще­ственное представление.  Ведущие пробелы  в строке игнорируются. Если параметр endptr не равен NULL, он должен указывать на символ, следующий после по­следнего в преобразуемой строке

Пример использования:      #include   <stdio.h>

#include   <stdlib.h>

char   str[]   =   "25.678   String";

float   x;

void main(void)

{

x   =   strtod(str,    &str[6]);

printf("x=%f",   x) ;

//Результат   =   2.5678Е01

}

Функция strtod () преобразует начальную часть строки, на которую указывают nptr удваивать представление.

Ожидаемая форма строки дополнительная плюс ( '+' ) или знак "минус" ( '-' ) сопровождаемый последовательностью цифр, произвольно содержащих символ десятичной точки, произвольно сопровождаемый экспонентой. Экспонента состоит из 'E' или 'e', сопровождаемый дополнительным или плюс знак "минус", сопровождаемый последовательностью цифр.

Ведущие символы незаполненного пространства в строке пропущены.

 strtod () функция возвращает преобразованное значение, если любой.

Если endptr - не ПУСТОЙ УКАЗАТЕЛЬ, указатель на символ после последнего символа, используемого в преобразовании сохранен в местоположении, на которое упоминают endptr.

Если никакое преобразование не выполнено, нуль возвращен и значение nptr сохранен в местоположении, на которое упоминают endptr.

Если правильное значение вызвало бы переполнение, плюс или минус HUGE_VAL возвращен (согласно признаку(подписи) значения), и ERANGE сохранен в errno. Если правильное значение вызвало бы антипереполнение, нуль возвращен и ERANGE сохранен в errno.

FIXME: HUGE_VAL должен быть определен где-нибудь. Разрядный образец - 0x7fffffff, но чем номер был бы это быть?

long strtol

(

const char * 

__nptr,

 

 

 

char ** 

__endptr,

 

 

 

int 

__base

 

 

)

 

 

 

Заголовок:     long  int   strtol(char   *s,   char   *endptr, int   base)

Описание: Преобразует строку, на которую указывает s, в цело­численное представление по основанию base. Веду­щие пробелы в строке игнорируются. Если параметр endptr не равен NULL, он должен указывать на сим­вол, следующий после последнего в преобразуемой строке. Если base > 10, то символу "А" соответствует число 10, символу "В" — число 11 и т.д.

Пример использования:    #include  <stdio.h>

#include <stdlib.h>

char str[] = "IF Hex string"; long int x;

void main(void)

{

x = strtol(str, &str[2], 16);

printf("x=%d", x); //Результат = 31

}

The strtol() function converts the string in nptr to a long value. The conversion is done according to the given base, which must be between 2 and 36 inclusive, or be the special value 0.

The string may begin with an arbitrary amount of white space (as determined by isspace()) followed by a single optional '+' or '-' sign. If base is zero or 16, the string may then include a "0x" prefix, and the number will be read in base 16; otherwise, a zero base is taken as 10 (decimal) unless the next character is '0', in which case it is taken as 8 (octal).

The remainder of the string is converted to a long value in the obvious manner, stopping at the first character which is not a valid digit in the given base. (In bases above 10, the letter 'A' in either upper or lower case represents 10, 'B' represents 11, and so forth, with 'Z' representing 35.)

If endptr is not NULL, strtol() stores the address of the first invalid character in *endptr. If there were no digits at all, however, strtol() stores the original value of nptr in endptr. (Thus, if *nptr is not '\0' but **endptr is '\0' on return, the entire string was valid.)

The strtol() function returns the result of the conversion, unless the value would underflow or overflow. If no conversion could be performed, 0 is returned. If an overflow or underflow occurs, errno is set to ERANGE and the function return value is clamped to LONG_MIN or LONG_MAX, respectively.

unsigned long strtoul

(

const char * 

__nptr,

 

 

 

char ** 

__endptr,

 

 

 

int 

__base

 

 

)

 

 

 

Заголовок:    unsigned  long  int   strtol(char   *s,   char   **endptr,    int  base)

Описание: Преобразует строку, на которую указывает s, в цело­численное представление по основанию base. Веду­щие пробелы в строке игнорируются. Если параметр endptr не равен NULL, он должен указывать на сим­вол, следующий после последнего в преобразуемой строке. Если base > 10, то символу "А" соответствует число 10, символу "В" — число 11 и т.д.

Пример использования:    #include   <stdio.h>

#include <stdlib.h>

char str[] = "1FA340D Hex string";

unsigned long int x;

void main(void)

{

x = strtol(str, &str[7], 16);

printf("x=%d", x); //Результат = 33174541

}

The strtoul() function converts the string in nptr to an unsigned long value. The conversion is done according to the given base, which must be between 2 and 36 inclusive, or be the special value 0.

The string may begin with an arbitrary amount of white space (as determined by isspace()) followed by a single optional '+' or '-' sign. If base is zero or 16, the string may then include a "0x" prefix, and the number will be read in base 16; otherwise, a zero base is taken as 10 (decimal) unless the next character is '0', in which case it is taken as 8 (octal).

The remainder of the string is converted to an unsigned long value in the obvious manner, stopping at the first character which is not a valid digit in the given base. (In bases above 10, the letter 'A' in either upper or lower case represents 10, 'B' represents 11, and so forth, with 'Z' representing 35.)

If endptr is not NULL, strtoul() stores the address of the first invalid character in *endptr. If there were no digits at all, however, strtoul() stores the original value of nptr in endptr. (Thus, if *nptr is not '\0' but **endptr is '\0' on return, the entire string was valid.)

The strtoul() function return either the result of the conversion or, if there was a leading minus sign, the negation of the result of the conversion, unless the original (non-negated) value would overflow; in the latter case, strtoul() returns ULONG_MAX, and errno is set to ERANGE. If no conversion could be performed, 0 is returned.

char* ultoa

(

unsigned long int 

__val,

 

 

 

char * 

__s,

 

 

 

int 

__radix

 

 

)

 

 

 

Заголовок:    char*  ultoa(unsigned  long  int  val,   char  *s,   int   radix)

Описание: Преобразует целочисленное значение val в строковое представление, которое сохраняется в переменной, пе­реданной по ссылке в качестве параметра s. Преобра­зование выполняется на основании значения параметра radix. Если radix == 2, то будет получено двоичное представление числа. Если radix > 10, то число 10 бу­дет обозначено в полученной строке символом "а", число 11 — "b" и т.д. Функция возвращает указатель на преобразованную строку s.

Пример использования:    char  s [ ] ;

s   =   ultoa(1456260463,    s,    16); // s   =   "56CCC56F"

Convert an unsigned long integer to a string.

The function ultoa() converts the unsigned long integer value from val into an ASCII representation that will be stored under s. The caller is responsible for providing sufficient storage in s.

Note:

The minimal size of the buffer s depends on the choice of radix. For example, if the radix is 2 (binary), you need to supply a buffer with a minimal length of 8 * sizeof (unsigned long int) + 1 characters, i.e. one character for each bit plus one for the string terminator. Using a larger radix will require a smaller minimal buffer size.

Warning:

If the buffer is too small, you risk a buffer overflow.

Conversion is done using the radix as base, which may be a number between 2 (binary conversion) and up to 36. If radix is greater than 10, the next digit after '9' will be the letter 'a'.

The ultoa() function returns the pointer passed as s.

char* utoa

(

unsigned int 

__val,

 

 

 

char * 

__s,

 

 

 

int 

__radix

 

 

)

 

 

 

Заголовок:    char*  utoa(unsigned int  val,   char   *s,   int   radix)

Описание: Преобразует целочисленное значение val в строковое представление, которое сохраняется в переменной, пе­реданной по ссылке в качестве параметра s. Преобра­зование выполняется на основании значения параметра radix. Если radix == 2, то будет получено двоичное представление числа. Если radix > 10, то число 10 бу­дет обозначено в полученной строке символом "а", число 11 — "b" и т.д. Функция возвращает указатель на преобразованную строку s.

Пример использования:    char  s [ ] ;

s   =   utoa(65535,    s,    16);    //s   =   "FFFF"

Convert an unsigned integer to a string.

The function utoa() converts the unsigned integer value from val into an ASCII representation that will be stored under s. The caller is responsible for providing sufficient storage in s.

Note:

The minimal size of the buffer s depends on the choice of radix. For example, if the radix is 2 (binary), you need to supply a buffer with a minimal length of 8 * sizeof (unsigned int) + 1 characters, i.e. one character for each bit plus one for the string terminator. Using a larger radix will require a smaller minimal buffer size.

Warning:

If the buffer is too small, you risk a buffer overflow.

Conversion is done using the radix as base, which may be a number between 2 (binary conversion) and up to 36. If radix is greater than 10, the next digit after '9' will be the letter 'a'.

The utoa() function returns the pointer passed as s.


Variable Documentation

char* __malloc_heap_end

malloc() tunable.

char* __malloc_heap_start

malloc() tunable.

size_t __malloc_margin

malloc() tunable.


Automatically generated by Doxygen 1.5.2 on 30 Oct 2007.

Hosted by uCoz