Заголовочный файл стандартной библиотеки <cstdlib>
Материал из cppreference.com
Этот заголовочный файл изначально был в стандартной библиотеке C как <stdlib.h>.
Этот заголовочный файл включает различные утилиты. Определённые здесь символы используются в некоторых компонентах библиотеки.
Типы | |
| тип структуры, возвращаемой std::div (определение типа) | |
| тип структуры, возвращаемой std::ldiv (определение типа) | |
(C++11) |
тип структуры, возвращаемой std::lldiv (определение типа) |
| беззнаковый целочисленный тип, возвращаемый оператором sizeof (определение типа) | |
Макро константы | |
| указывает статус выполнения программы (макроконстанта) | |
MB_CUR_MAX |
максимальное количество байтов в многобайтовом символе с текущей локалью (макроконстанта) |
| определяемая реализацией константа для нулевого указателя (макроконстанта) | |
| максимально возможное значение, генерируемое std::rand (макроконстанта) | |
Функции | |
Контроль над процессом | |
| вызывает аварийное завершение программы (без очистки) (функция) | |
| вызывает нормальное завершение программы с очисткой (функция) | |
(C++11) |
вызывает быстрое завершение программы без полной очистки (функция) |
(C++11) |
вызывает нормальное завершение программы без очистки (функция) |
| регистрирует функцию, которая будет вызываться при вызове std::exit() (функция) | |
(C++11) |
регистрирует функцию, которая будет вызываться при вызове std::quick_exit (функция) |
| вызывает командный процессор среды узла (функция) | |
| доступ к списку переменных среды (функция) | |
Управление памятью | |
| выделяет память (функция) | |
(C++17) |
выделяет выровненную память (функция) |
| выделяет и обнуляет память (функция) | |
| расширяет или сжимает ранее выделенный блок памяти (функция) | |
| освобождает ранее выделенную память (функция) | |
Преобразование числа в строку | |
| преобразует байтовую строку в значение числа с плавающей запятой (функция) | |
(C++11) |
преобразует байтовую строку в целочисленное значение (функция) |
(C++11) |
преобразует байтовую строку в целочисленное значение (функция) |
(C++11) |
преобразует байтовую строку в беззнаковое целое число (функция) |
| преобразует байтовую строку в число с плавающей запятой (функция) | |
Манипуляции с широкими строками | |
| возвращает количество байтов в следующем мультибайтовом символе (функция) | |
| преобразует следующий многобайтовый символ в широкий символ (функция) | |
| преобразует широкий символ в его многобайтовое представление (функция) | |
| преобразует узкую многобайтовую строку символов в широкую строку (функция) | |
| преобразует широкую строку в узкую многобайтовую строку символов (функция) | |
Разные алгоритмы и математика | |
| генерирует псевдослучайные числа (функция) | |
| инициализирует псевдогенератор случайных чисел (функция) | |
| сортирует диапазон элементов с неопределённым типом (функция) | |
| ищет в массиве элемент любого типа (функция) | |
(C++11) |
вычисляет абсолютное значение целого числа (|x|) (функция) |
(C++11) |
вычисляет частное и остаток от целочисленного деления (функция) |
Краткое описание
namespace std {
using size_t = /* смотрите описание */; // автономная
using div_t = /* смотрите описание */; // автономная
using ldiv_t = /* смотрите описание */; // автономная
using lldiv_t = /* смотрите описание */; // автономная
}
#define NULL /* смотрите описание */ // автономная
#define EXIT_FAILURE /* смотрите описание */ // автономная
#define EXIT_SUCCESS /* смотрите описание */ // автономная
#define RAND_MAX /* смотрите описание */
#define MB_CUR_MAX /* смотрите описание */
namespace std {
// Псевдонимы функций только для пояснения
// только для пояснения
extern "C" using /*c-atexit-обработчик*/ = void();
// только для пояснения
extern "C++" using /*atexit-обработчик*/ = void();
// только для пояснения
extern "C" using /*c-предикат-сравнения*/ = int(const void*, const void*);
// только для пояснения
extern "C++" using /*предикат-сравнения*/ = int(const void*, const void*);
// начало и окончание
[[noreturn]] void abort() noexcept; // автономная
int atexit(/*c-atexit-обработчик*/* func) noexcept; // автономная
int atexit(/*atexit-обработчик*/* func) noexcept; // автономная
int at_quick_exit(/*c-atexit-обработчик*/* func) noexcept; // автономная
int at_quick_exit(/*atexit-обработчик*/* func) noexcept; // автономная
[[noreturn]] void exit(int status); // автономная
[[noreturn]] void _Exit(int status) noexcept; // автономная
[[noreturn]] void quick_exit(int status) noexcept; // автономная
char* getenv(const char* name);
int system(const char* string);
// Распределение памяти библиотеки C
void* aligned_alloc(size_t alignment, size_t size);
void* calloc(size_t nmemb, size_t size);
void free(void* ptr);
void* malloc(size_t size);
void* realloc(void* ptr, size_t size);
double atof(const char* nptr);
int atoi(const char* nptr);
long int atol(const char* nptr);
long long int atoll(const char* nptr);
double strtod(const char* nptr, char** endptr);
float strtof(const char* nptr, char** endptr);
long double strtold(const char* nptr, char** endptr);
long int strtol(const char* nptr, char** endptr, int base);
long long int strtoll(const char* nptr, char** endptr, int base);
unsigned long int strtoul(const char* nptr, char** endptr, int base);
unsigned long long int strtoull(const char* nptr, char** endptr, int base);
// функции преобразования многобайтовых/широких строк и символов
int mblen(const char* s, size_t n);
int mbtowc(wchar_t* pwc, const char* s, size_t n);
int wctomb(char* s, wchar_t wchar);
size_t mbstowcs(wchar_t* pwcs, const char* s, size_t n);
size_t wcstombs(char* s, const wchar_t* pwcs, size_t n);
// Алгоритмы стандартной библиотеки C
void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
/*c-предикат-сравнения*/* compar); // автономная
void* bsearch(const void* key, const void* base, size_t nmemb, size_t size,
/*предикат-сравнения*/* compar); // автономная
// автономная
void qsort(void* base, size_t nmemb, size_t size, /*c-предикат-сравнения*/* compar);
// автономная
void qsort(void* base, size_t nmemb, size_t size, /*предикат-сравнения*/* compar);
// некачественная генерация случайных чисел
int rand();
void srand(unsigned int seed);
// абсолютные значения
constexpr int abs(int j); // автономная
constexpr long int abs(long int j); // автономная
constexpr long long int abs(long long int j); // автономная
constexpr /* тип-с-плавающей-запятой */
abs(/* тип-с-плавающей-запятой */ j); // автономная-удалённая
constexpr long int labs(long int j); // автономная
constexpr long long int llabs(long long int j); // автономная
constexpr div_t div(int numer, int denom); // автономная
constexpr ldiv_t div(long int numer, long int denom); // автономная
constexpr lldiv_t div(long long int numer, long long int denom); // автономная
constexpr ldiv_t ldiv(long int numer, long int denom); // автономная
constexpr lldiv_t lldiv(long long int numer, long long int denom); // автономная
}
Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| LWG 286 | C++98 | определение size_t не было предоставлено в <cstdlib>
|
предоставлено |