描述
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()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。