Cライブラリのマクロ - offsetofは()
説明
Cライブラリマクロoffsetofは(タイプ、メンバー-指示)が 、オフセット先頭バイトへの構造の相対的な構造部材である一定の整数size_t型を生成します。 構造タイプの名前で、特定のメンバー-指示によりメンバーが与えられます。
声明
ここで、()マクロステートメントoffsetofはあります。
offsetof(type, member-designator)
パラメータ
- タイプ-これはメンバー-指定子は、インジケータの有効なメンバーであることを特徴と、クラス型です。
- メンバー-指示-クラス・タイプ・インジケータのメンバーです。
戻り値
このマクロは、メンバーのオフセットタイプを示す、size_t型の値を返します。
例
次の例では、()マクロの使用offsetofは示しています。
#include <stddef.h> #include <stdio.h> struct address { char name[50]; char street[50]; int phone; }; int main() { printf("address 结构中的 name 偏移 = %d 字节。\n", offsetof(struct address, name)); printf("address 结构中的 street 偏移 = %d 字节。\n", offsetof(struct address, street)); printf("address 结构中的 phone 偏移 = %d 字节。\n", offsetof(struct address, phone)); return(0); }
それでは、以下になります上記のプログラムを、コンパイルして実行してみましょう:
address 结构中的 name 偏移 = 0 字节。 address 结构中的 street 偏移 = 50 字节。 address 结构中的 phone 偏移 = 100 字节。