标准库头文件 <cstdlib>
来自 cppreference.com
此头文件最初位于 C 标准库中,名为 <stdlib.h>.
此头文件提供各种实用程序。此处定义的符号被几个库组件使用。
类型 | ||
结构类型,由 std::div 返回 (typedef) | ||
结构类型,由 std::ldiv 返回 (typedef) | ||
(C++11) |
结构类型,由 std::lldiv 返回 (typedef) | |
由 sizeof 运算符返回的无符号整数类型 (typedef) | ||
宏常量 | ||
指示程序执行状态 (宏常量) | ||
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 = /* 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 */ = // exposition only int(const void*, const void*); extern "C++" using /* compare-pred */ = // exposition only int(const void*, const void*); // 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* 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); // 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, const void* base, // freestanding size_t nmemb, size_t size, /* c-compare-pred */* compar); void* bsearch(const void* key, const void* base, // freestanding size_t nmemb, size_t size, /* compare-pred */* compar); void qsort(void* base, size_t nmemb, size_t size, // freestanding /* c-compare-pred */* compar); void qsort(void* base, size_t nmemb, size_t size, // freestanding /* 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(/* floating-point-type */ j); // freestanding-deleted 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, long long int denom); // freestanding constexpr ldiv_t ldiv(long int numer, long int denom); // freestanding constexpr lldiv_t lldiv(long long int numer, long long int denom); // freestanding }
[编辑] 缺陷报告
以下行为更改的缺陷报告已追溯应用于之前发布的 C++ 标准。
DR | 应用于 | 已发布的行为 | 正确行为 |
---|---|---|---|
LWG 286 | C++98 | size_t 的定义未在 <cstdlib> 中提供 |
提供 |