《C标准库》——之<stddef.h>

本文探讨了C语言标准库中的<stddef.h>,详细介绍了其中的类型定义、NULL宏以及重要的offsetof宏。通过讲解offsetof的实现原理,阐述了如何计算结构体成员在内存中的偏移量。同时,文章提到了Linux内核中类似的宏,用于根据结构体成员地址获取结构体指针。
摘要由CSDN通过智能技术生成

<stddef.h>,顾名思义,就是标准定义。C语言里这个标准库里定义了一些类型,和宏定义。

<stddef.h>的内容:

类型:

ptrdiff_t : 是两个指针相减的结果的无符号整数类型。
size_t    : 是sizeof操作符的结构的无符号类型。
wchar_t   : 是一个整数类型,它范围内的值可以表示最大扩展字符集中所有成员的不同编码值。



宏:

NULL     : 展开为实现定义的空指针常量。
offsetof : offsetof(type, member-designator);展开为衣蛾size_t的整值常量表达式,它的值是从结构的起始位置(由type指定) 到结构成员(member-designator)的偏移量,以字节为单位,member-dedignator应该满足:
static type t;  然后表达式&(t.member-designator)就会计算一个地址常量(如果指定的成员是一个位域,则这种行为未定义)。



实现:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值