Меню
Главная
Случайная статья
Настройки
|
stdlib.h — заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контролем процесса выполнения программы, преобразованием типов и другие. Заголовок вполне совместим с C++ и известен в нём как cstdlib . Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).
Содержание
Функции
Имя |
Описание |
Соответствие стандартам
|
Преобразование типов |
C89 |
C99
|
atof |
строка в число двойной точности (double; НЕ float) |
Да |
Да |
atoi |
строка в целое число (integer) |
Да |
Да |
atol |
строка в длинное целое число (long integer) |
Да |
Да |
atoll |
строка в длинное целое число (long long integer) |
Нет |
Да |
strtod |
строка в число двойной точности (double) |
Да |
Да |
strtof |
строка в число одиночной точности (float) |
Нет |
Да |
strtol |
строка в длинное целое число (long integer) |
Да |
Да |
strtold |
строка в длинное двойной точности (long double) |
Нет |
Да
|
strtoll |
строка в длинное целое число (long long integer) |
Нет |
Да
|
strtoul |
строка в беззнаковое длинное целое число (unsigned long integer) |
Да |
Да
|
strtoull |
строка в беззнаковое длинное целое число (unsigned long long integer) |
Нет |
Да
|
Генерация псевдослучайных последовательностей
|
rand |
генерирует псевдослучайное значение |
Да |
Да
|
srand |
устанавливает начальное значение генератора псевдослучайных чисел |
Да |
Да
|
Выделение и освобождение памяти
|
malloc
calloc
realloc |
выделяет память из кучи |
Да |
Да
|
free |
освобождает память обратно в кучу |
Да |
Да
|
Контроль процесса выполнения программы
|
abort |
некорректное завершение выполнения |
Да |
Да
|
atexit |
регистрирует обратный вызов функции, которую нужно будет выполнить перед завершением работы программы |
Да |
Да
|
exit |
завершает выполнение программы |
Да |
Да
|
getenv |
извлекает переменные окружения |
Да |
Да
|
system |
выполняет внешнюю команду |
Да |
Да
|
Сортировка и поиск
|
bsearch |
двоичный поиск в массиве |
Да |
Да
|
qsort |
сортировка массива |
Да |
Да
|
Математика
|
abs , labs |
абсолютная величина целого числа |
Да |
Да
|
llabs , imaxabs |
Нет |
Да
|
div
ldiv |
деление целых чисел |
Да |
Да
|
Многобайтовые операции/ широкие символы
|
mblen |
размер многобайтовых символов[1] |
Нет |
Да
|
mbtowc, wctomb, mbstowcs, wcstombs |
преобразование многобайтовых и широких символов[1] |
Нет |
Да
|
NULL
Заголовочные файлы stdlib.h и stddef.h определяют макрос NULL, являющийся константным нуль-указателем, который гарантированно указывает на некорректный адрес памяти.
NULL может быть определен как константное выражение, равное целому нулевому числу (нулю), длинному целому нулю, или нуль приводится к указателю типа void *:
#define NULL 0
#define NULL 0L
#define NULL ((void *) 0)
Несмотря на то, что константа нуль-указателя всегда представляется в Си символьной константой 0 или 0, приведённым к void-указателю, реальное битовое представление подобного указателя зависит от системы и может содержать однобитовые значения.
Типы
size_t
Заголовочные файлы stdlib.h и stddef.h определяют тип данных, называемый size_t [2], который используется для представления размера объекта. Библиотечные функции, использующие размеры, принимают на вход значения именно этого типа. Значения типа size_t возвращает оператор sizeof .
Настоящий тип size_t платформо-независим; распространенной ошибкой является подразумевать под size_t беззнаковое целое (unsigned int ), что может привести к ошибкам программирования,[3] причём в первую очередь это касается 64-битных архитектур.
div_t, ldiv_t
Также определены два менее широко используемых типа данных — div_t и ldiv_t . Они являются возвращаемыми типами функций div и ldiv . Стандарт определяет их следующим образом:
typedef struct {
int quot, rem;
} div_t;
typedef struct {
long int quot, rem;
} ldiv_t;
Нестандартные функции
itoa
itoa — общая функция, входящая во множество реализаций stdlib.h, но не определяемая стандартом. Возможно, её так часто включают в библиотеки благодаря её описанию в книге «Язык программирования Си». Аналогичного эффекта можно добиться при помощи функции sprintf, которая определена в стандарте.
См. также
Примечания
- 1 2 C++ Resources Network — stdlib.h Архивная копия от 7 января 2010 на Wayback Machine проверено 2009 12 15
- Согласно стандарту ISO/IEC 9899 C99, Глава 7.20 General utilities <stdlib.h> (point number 2) и Приложение B.19 General utilities <stdlib.h>. Определение может также содержаться в stddef.h, если кто-то захочет избежать подключения всей stdlib.
- 20 issues of porting C++ code on the 64-bit platform Архивировано 4 января 2010 года.
Ссылки
|
|