标准库头文件 <cstdlib>
来自cppreference.com
此头文件原作为 <stdlib.h>
存在于 C 标准库。
此头文件提供杂项工具。此处所定义的各个符号为多个标准库组件所用。
类型 | |
结构体类型,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) |
注册将于调用 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-handler*/ = void(); // 仅用于阐释 extern "C++" using /*atexit-handler*/ = void(); // 仅用于阐释 extern "C" using /*c-compare-pred*/ = int(const void*, const void*); // 仅用于阐释 extern "C++" using /*compare-pred*/ = int(const void*, const void*); // 仅用于阐释 // 启动与终止 [[noreturn]] void abort() noexcept; int atexit(/*c-atexit-handler*/* func) noexcept; int atexit(/*atexit-handler*/* func) noexcept; int at_quick_exit(/*c-atexit-handler*/* func) noexcept; int at_quick_exit(/*atexit-handler*/* 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-compare-pred*/* compar); void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, /*compare-pred*/* compar); void qsort(void* base, size_t nmemb, size_t size, /*c-compare-pred*/* compar); void qsort(void* base, size_t nmemb, size_t size, /*compare-pred*/* compar); // 低质量随机数生成 int rand(); void srand(unsigned int seed); // 绝对值 int abs(int j); long int abs(long int j); long long int abs(long long int j); float abs(float j); double abs(double j); long double abs(long double j); long int labs(long int j); long long int llabs(long long int j); div_t div(int numer, int denom); ldiv_t div(long int numer, long int denom); lldiv_t div(long long int numer, long long int denom); ldiv_t ldiv(long int numer, long int denom); lldiv_t lldiv(long long int numer, long long int denom); }