头文件<cstddef> <cstdlib> <cstring> 常用的定义以及函数
admin
2024-01-31 21:01:53

cstddef内的各项定义

标识符意义
NULL指针值 用来表示未定义或者无值
nullptr_tnullptr类型(始于C++11)
size_t一种无正负号类型用来表示大小(比如元素的个数)
ptrdiff_t一种带正负号的类型 用来表示指针之间的距离
max_align_t所有环境之最大齐位 所对应的类型
offsetof(type,mem)表示成员mem在某个struct或者union中的偏移量

在C++中给指针赋值最好使用nullptr

cstdlib中的定义
常量EXIT_SUCCESS和EXIT_FAILURE用作exit()的实参也可以用作main的返回值

定义意义
EXIT_SUCCESS程序正常结束
EXIT_FAILURE程序异常结束
exit(int status)退出程序并清理static对象
quick_exit(int status)退出程序时以at_quick_exit()清理
_Exit(int status)退出程序而不清理
abort()退出程序,在某些系统上可能导致崩溃
atexit(void(*func)())退出程序的时候调用func
at_quick_exit(void(*func)())在quick_exit()上调用func

中的定义式

定义意义
memchr(const void * ptr,int c,size_t len)在ptr所指的前len个byte中找到字符c
memcmp(const void * p1,const void * p2,size_t len)比较p1,p2中的前len个byte
memcpy(void *toptr,const void * fromptr,size_t len)将fromptr所指的前len个byte复制到toptr中
memmove(void *toptr,const void * fromptr,size_t len)将fromptr所指的前len个byte复制到toptr中(区域可以重叠)
memset(void *ptr,int c,size_t len)将ptr所指的前len个byte复制为字符c

由于目标空间和源空间存在重叠,则无法按照预期逻辑进行赋值,故此后面设计出了memmove

函数memmove和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的
如果源空间和目标空间出现重叠,就得使用memmove函数处理

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...