Standard library header <cstdlib>
From cppreference.net
此头文件最初作为 <stdlib.h> 存在于C标准库中。
此头文件提供杂项实用工具。此处定义的符号被多个库组件使用。
类型 |
||
|
结构体类型,由
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 = /* 查看描述 */; // freestanding using div_t = /* 查看描述 */; // freestanding using ldiv_t = /* 查看描述 */; // freestanding using lldiv_t = /* 查看描述 */; // freestanding } #define NULL /* 见描述 */ // freestanding #define EXIT_FAILURE /* 见描述 */ // 独立环境 #define EXIT_SUCCESS /* 参见描述 */ // 独立环境 #define RAND_MAX /* 参见说明 */ #define MB_CUR_MAX /* 参见描述 */ namespace std { // 仅用于展示的函数类型别名 extern "C" using /* c-atexit-handler */ = void(); // 仅作展示用途 extern "C++" using /* atexit-handler */ = void(); // 仅作展示用途 extern "C" using /* c-compare-pred */ = // 仅作展示用途 int(const void*, const void*); extern "C++" using /* 比较谓词 */ = // 仅作展示用途 int(const void*, const void*); // 起始与终止 [[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 库内存分配 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, // 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, /* 比较谓词 */* 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 /* 比较谓词 */* compar); // 低质量随机数生成 int rand(); void srand(unsigned int seed); // 绝对值 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 /* 浮点类型 */ abs(/* 浮点类型 */ 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); // 独立环境 constexpr lldiv_t lldiv(long long int numer, long long int denom); // freestanding }
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| DR | 适用版本 | 发布行为 | 正确行为 |
|---|---|---|---|
| LWG 286 | C++98 |
未在
<cstdlib>
中提供
size_t
的定义
|
已提供 |