这两个头文件和其C对应版本兼容,在C++程序中经常用到,定义了一些常用的函数、宏、型别和函数。
1,<cstddef>内的各种定义
NUll: 指针值,用来表示未定义或无值
size_t:一种无正负号的型别,用来表示大小(例如元素个数)
ptrdiff_t:一种带有正负号的型别,用来表示指针之间的距离
offsetof:表示一个成员在struct或union中的偏移量
注意:NULL的型别必须是个整数型别,否则无法将NULL赋值给一个指针。因为:C++并没有定义从void* 到任何其他型别的自动转型操作。同时,NULL也定义于头文件<cstdio>,<cstdlib>,<cstring>,<ctime>,<cwchar>,<clocale>.
2,<cstdlib>中的各种定义
exit(int status): 退出(esit)程序(并清理static对象)
EXIT_SUCCESS:程序正常结束
EXIT_FAILURE:程序不正常结束
abort():退出程序(在某些系统上可能导致崩溃)
atexit( void (*function)()):退出(exit)程序时调用的某些函数、
注意:exit()会销毁所有static对象,将所有缓冲区清空,关闭所有 I/O通道,然后终止程序(之前会先调用经由atexit()登录的函数)。如果atexit()登录的函数抛出异常,就会调用terminate()。
abort()会立刻终止函数,不做任何清理工作。
参考资料: