描述
C 库宏offsetof(type, member-designator)导致类型为常量的整数size_t这是结构成员从结构开头的偏移量(以字节为单位)。成员由 member-designator 给出,结构名称以类型给出。
声明
以下是 offsetof() 宏的声明。
offsetof(type, member-designator)
参数
type- 这是 member-designator 是有效成员指示符的类类型。
member-designator- 这是类类型的成员指示符。
返回值
这个宏返回类型的值size_t这是成员在类型中的偏移值。
示例
下面的例子展示了 offsetof() 宏的用法。
#include <stddef.h>
#include <stdio.h>
struct address {
char name[50];
char street[50];
int phone;
};
int main () {
printf("name offset = %d byte in address structure.\n",
offsetof(struct address, name));
printf("street offset = %d byte in address structure.\n",
offsetof(struct address, street));
printf("phone offset = %d byte in address structure.\n",
offsetof(struct address, phone));
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果 -
name offset = 0 byte in address structure. street offset = 50 byte in address structure. phone offset = 100 byte in address structure.
相关用法
- C语言 outtextxy()用法及代码示例
- C语言 outtext()用法及代码示例
- C语言 宏 assert()用法及代码示例
- C语言 vprintf()用法及代码示例
- C语言 宏 va_start()用法及代码示例
- C语言 setlocale()用法及代码示例
- C语言 fread()用法及代码示例
- C语言 sinh()用法及代码示例
- C语言 feof()用法及代码示例
- C语言 scanf()用法及代码示例
- C语言 imagesize()用法及代码示例
- C语言 getarcoords()用法及代码示例
- C语言 isdigit()用法及代码示例
- C语言 clock()用法及代码示例
- C语言 strcspn()用法及代码示例
- C语言 setlinestyle()用法及代码示例
- C语言 fmod()用法及代码示例
- C语言 showbits()用法及代码示例
- C语言 div()用法及代码示例
- C语言 sqrt()用法及代码示例
注:本文由纯净天空筛选整理自 C library macro - offsetof()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。