编程中的offsetof

简介: 编程中的offsetof

linux和windows平台都已经定义了offsetof函数,用于取struct类型中某个变量的偏移量

stddef.h头文件中,该宏的完整说明如下:


#ifdef __cplusplus
#ifdef _WIN64
#define offsetof(s,m) (size_t)( (ptrdiff_t)&reinterpret_cast<const volatile char&>((((s *)0)->m)) )
#else
#define offsetof(s,m) (size_t)&reinterpret_cast<const volatile char&>((((s *)0)->m))
#endif
#else
#ifdef _WIN64
#define offsetof(s,m) (size_t)( (ptrdiff_t)&(((s *)0)->m) )
#else
#define offsetof(s,m) (size_t)&(((s *)0)->m)
#endif
#endif /* __cplusplus */
目录
相关文章
|
7月前
|
编译器 Linux C语言
c语言->浅学结构体
c语言->浅学结构体
|
C语言
C语言初阶-函数(1)
C语言初阶-函数(1)
|
算法 编译器 C语言
【初阶C语言】认识和使用函数
【初阶C语言】认识和使用函数 在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组 成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软件库。
43 0
|
C语言
C语言结构体基础知识
C语言结构体基础知识
60 0
|
C语言
码蹄杯语言基础:结构体2(C语言)
码蹄杯语言基础:结构体2(C语言)
69 1
|
C语言
c语言学习第30课--联合体
c语言学习第30课--联合体
77 0
|
C语言
【C语言初阶】 函数
【C语言初阶】 函数
|
算法 程序员 编译器
C语言初阶-函数(2)
C语言初阶-函数(2)
90 1
|
存储 程序员 C语言
C语言初阶-函数(1)
C语言初阶-函数(1)
53 1
|
编译器 Linux C语言
C语言学习系列—>一篇带你了解结构体
C语言学习系列—>一篇带你了解结构体
77 0