- Stdlib.h
-
stdlib.h
stdlib.h — заголовок (заголовочный файл) стандартной библиотеки общего назначения языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ и в C++ известен как
cstdlib. Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).Содержание
Member functions
Члены
stdlib.hможно разделить на следующие категории: преобразования типов, управление памятью, контроль процесса, сортировка и поиск, математика.Имя Описание Преобразование типов atofстрока в число двойной точности (НЕ float) atoiстрока в целое число atolстрока в длинное целое число strtodстрока в число двойной точности (double) strtolстрока в длинное целое число strtoulстрока в беззнаковое длинное целое число (unsigned long int) Генерация псевдослучайных последовательностей randгенерирует псевдослучайное значение srandустанавливает начальное значение генератора псевдослучайных чисел Выделение и освобождение памяти malloc
calloc
reallocвыделяет память из кучи freeосвобождает память обратно в кучу Контроль процесса выполнения программы abortнекорректное завершение выполнения atexitрегистрирует обратный вызов функции для выхода из программы exitзавершает выполнение программы getenvизвлекает переменные окружения systemвыполняет внешнюю команду Сортировка и поиск bsearchдвоичный поиск в массиве qsortсортировка массива Математика abs
labsабсолютная величина div
ldivделение целых чисел Многобайтовые операции/ широкие символы mblenразмер многобайтовых символов[1] mbtowc, wctomb, mbstowcs, wcstombsпреобразование многобайтовых и широких символов[2] Члены-константы
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[3], который используется для представления размера объекта. Библиотечные функции, использующие размеры, ожидают типаsize_t, а операторsizeofпревращается вsize_t.Настоящий тип
size_tплатформо-независим; распространенной ошибкой является подразумеваниеsize_tкак беззнаковое целое (unsigned int), что может привести к ошибкам программирования,[4] причем в первую очередь это касается 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, которая определена в стандарте.
См. также
Примечания
- ↑ C++ Resources Network — stdlib.h проверено 2009 12 15
- ↑ 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
Ссылки
Wikimedia Foundation. 2010.