Namespaces
Variants

Standard library header <cstdlib>

From cppreference.net
Standard library headers

该头文件最初作为 <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() 时要调用的函数
(函数)
注册在调用 std::quick_exit 时要调用的函数
(函数)
调用主机环境的命令处理器
(函数)
访问环境变量列表
(函数)
内存管理
分配内存
(函数)
<a href="../memory

概要

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

缺陷报告

下列行为变更缺陷报告被追溯应用于先前发布的C++标准。

问题报告 适用标准 发布时行为 正确行为
LWG 286 C++98 未在 <cstdlib> 中提供 size_t 的定义 已提供

参见