Spec-Zone.ru › C++

Заголовок стандартной библиотеки <cstdlib>

Этот заголовок изначально входил в стандартную библиотеку C как <stdlib.h>.

Этот заголовок предоставляет различные вспомогательные средства. Определённые здесь символы используются несколькими компонентами библиотеки.

Типы

div_t
структурный тип, возвращаемый std::div
(псевдоним типа)
ldiv_t
структурный тип, возвращаемый std::ldiv
(псевдоним типа)
lldiv_t
(C++11)
структурный тип, возвращаемый std::lldiv
(псевдоним типа)
size_t
беззнаковый целочисленный тип, возвращаемый оператором sizeof
(псевдоним типа)

Макросы-константы

EXIT_SUCCESSEXIT_FAILURE
обозначают состояние выполнения программы
(макрос-константа)
MB_CUR_MAX
максимальное количество байтов в многобайтовом символе для текущей локали
(макрос-константа)
NULL
определяемая реализацией константа нулевого указателя
(макрос-константа)
RAND_MAX
максимальное возможное значение, генерируемое функцией std::rand
(макрос-константа)

Функции

Управление процессом
abort
вызывает аварийное завершение программы (без очистки ресурсов)
(функция)
exit
вызывает нормальное завершение программы с очисткой ресурсов
(функция)
quick_exit
(C++11)
вызывает быстрое завершение программы без полной очистки ресурсов
(функция)
_Exit
(C++11)
вызывает нормальное завершение программы без очистки ресурсов
(функция)
atexit
регистрирует функцию, вызываемую при вызове std::exit()
(функция)
at_quick_exit
(C++11)
регистрирует функцию, вызываемую при вызове std::quick_exit
(функция)
system
вызывает командный интерпретатор среды размещения
(функция)
getenv
предоставляет доступ к списку переменных среды
(функция)
Управление памятью
malloc
выделяет память
(функция)
aligned_alloc
(C++17)
выделяет выровненную память
(функция)
calloc
выделяет и обнуляет память
(функция)
realloc
увеличивает или уменьшает ранее выделенный блок памяти
(функция)
free
освобождает ранее выделенную память
(функция)
free_sized
(C++26)
освобождает ранее выделенную память заданного размера
(функция)
free_aligned_sized
(C++26)
освобождает ранее выделенную память заданного размера и выравнивания
(функция)
memalignment
(C++26)
возвращает максимальное выравнивание, которому удовлетворяет указанный адрес
(функция)
Преобразование строк в числа
atof
преобразует байтовую строку в значение с плавающей точкой
(функция)
atoiatolatoll
(C++11)
преобразует байтовую строку в целочисленное значение
(функция)
strtolstrtoll
(C++11)
преобразует байтовую строку в целочисленное значение
(функция)
strtoulstrtoull
(C++11)
преобразует байтовую строку в беззнаковое целочисленное значение
(функция)
strtofstrtodstrtold
преобразует байтовую строку в значение с плавающей точкой
(функция)
strfromfstrfromdstrfroml
(C++26)(C++26)(C++26)
преобразует значение с плавающей точкой в байтовую строку
(функция)
Работа со строками широких символов
mblen
возвращает количество байтов в следующем многобайтовом символе
(функция)
mbtowc
преобразует следующий многобайтовый символ в широкий символ
(функция)
wctomb
преобразует широкий символ в его многобайтовое представление
(функция)
mbstowcs
преобразует узкую строку многобайтовых символов в широкую строку
(функция)
wcstombs
преобразует широкую строку в узкую строку многобайтовых символов
(функция)
Различные алгоритмы и математические функции
rand
генерирует псевдослучайное число
(функция)
srand
инициализирует генератор псевдослучайных чисел
(функция)
qsort
сортирует диапазон элементов неопределённого типа
(функция)
bsearch
выполняет поиск элемента неопределённого типа в массиве
(функция)
abs(int)labsllabs
(C++11)
вычисляет абсолютное значение целого числа (\(\small{|x|}\)|x|)
(функция)
div(int)ldivlldiv
(C++11)
вычисляет частное и остаток от целочисленного деления
(функция)

Обзор

namespace std {
  using size_t  = /* see description */; // freestanding
  using div_t   = /* see description */; // freestanding
  using ldiv_t  = /* see description */; // freestanding
  using lldiv_t = /* see description */; // freestanding
}

#define NULL          /* see description */ // freestanding
#define EXIT_FAILURE  /* see description */ // freestanding
#define EXIT_SUCCESS  /* see description */ // freestanding
#define RAND_MAX      /* see description */
#define MB_CUR_MAX    /* see description */

namespace std {
  // Exposition-only function type aliases
  extern "C" using /*c-atexit-handler*/ = void();                      // exposition-only
  extern "C++" using /*atexit-handler*/ = void();                      // exposition-only
  extern "C" using /*c-compare-pred*/ = int(const void*, const void*); // exposition-only
  extern "C++" using /*compare-pred*/ = int(const void*, const void*); // exposition-only

  // start and termination
  [[noreturn]] void abort() noexcept;                     // freestanding
  int atexit(/*c-atexit-handler*/* func) noexcept;        // freestanding
  int atexit(/*atexit-handler*/* func) noexcept;          // freestanding
  int at_quick_exit(/*c-atexit-handler*/* func) noexcept; // freestanding
  int at_quick_exit(/*atexit-handler*/* func) noexcept;   // freestanding
  [[noreturn]] void exit(int status);                     // freestanding
  [[noreturn]] void _Exit(int status) noexcept;           // freestanding
  [[noreturn]] void quick_exit(int status) noexcept;      // freestanding

  char* getenv(const char* name);
  int system(const char* string);

  // C library memory allocation
  void* aligned_alloc(size_t alignment, size_t size);
  void* calloc(size_t nmemb, size_t size);
  void free(void* ptr);
  void free_sized(void* ptr, size_t size);
  void free_aligned_sized(void* ptr, size_t alignment, size_t size);
  void* malloc(size_t size);
  void* realloc(void* ptr, size_t size);
  size_t memalignment(const void* p); // freestanding

  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);
  int strfromd(char* s, size_t n, const char* format, double fp);
  int strfromf(char* s, size_t n, const char* format, float fp);
  int strfroml(char* s, size_t n, const char* format, long double fp);
  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);

  // multibyte / wide string and character conversion functions
  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 standard library algorithms
  void* bsearch(const void* key,          // freestanding
                void* base,
                size_t nmemb,
                size_t size,
                /*c-compare-pred*/* compar);
  void* bsearch(const void* key,          // freestanding
                void* base,
                size_t nmemb,
                size_t size,
                /*compare-pred*/* compar);
  const void* bsearch(const void* key,    // freestanding
                      const void* base,
                      size_t nmemb,
                      size_t size,
                      /*c-compare-pred*/* compar);
  const void* bsearch(const void* key,    // freestanding
                      const void* base,
                      size_t nmemb,
                      size_t size,
                      /*compare-pred*/* compar);
  void qsort(void* base,                  // freestanding
             size_t nmemb,
             size_t size,
             /*c-compare-pred*/* compar);
  void qsort(void* base,                  // freestanding
             size_t nmemb,
             size_t size,
             /*compare-pred*/* compar);

  // low-quality random number generation
  int rand();
  void srand(unsigned int seed);

  // absolute values
  constexpr int abs(int j);                              // freestanding
  constexpr long int abs(long int j);                    // freestanding
  constexpr long long int abs(long long int j);          // freestanding
  constexpr /*floating-point-type*/ abs(                 // freestanding-deleted
    /*floating-point-type*/ j);                                    

  constexpr long int labs(long int j);                   // freestanding
  constexpr long long int llabs(long long int j);        // freestanding

  constexpr div_t div(int numer, int denom);             // freestanding
  constexpr ldiv_t div(long int numer, long int denom);  // freestanding
  constexpr lldiv_t div(long long int numer,             // freestanding
    long long int denom);
  constexpr ldiv_t ldiv(long int numer, long int denom); // freestanding
  constexpr lldiv_t lldiv(long long int numer,           // freestanding
    long long int denom);
}

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.

DR Применяется к Опубликованное поведение Корректное поведение
LWG 286 C++98 определение size_t не было предоставлено в <cstdlib> предоставлено

См. также

  • Вспомогательные средства поддержки программ
  • Генерация псевдослучайных чисел
  • Основные математические функции
  • Специальные математические функции
  • Библиотека управления памятью C
  • Байтовые строки с нулевым завершающим символом
  • Многобайтовые строки с нулевым завершающим символом
  • Библиотека алгоритмов

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/header/cstdlib

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API