- stdlib.h
-
Стандартная библиотека
языка программирования Сstdlib.h — заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ и известен в нём как
cstdlib
. Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).Содержание
Функции
Имя Описание Преобразование типов 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
абсолютная величина 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 проверено 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
Ссылки
- Список функций stdlib.h на сайте cplusplus.com (англ.)
- Why size_t matters (англ.)
- Стандартные Вспомогательные Функции (stdlib.h) (рус.)
- Функции библиотеки stdlib.h (рус.)
Категории:- Стандартные библиотечные заголовки языка Си
- Stdlib.h
Wikimedia Foundation. 2010.