offsetof

提供: RAD Studio
移動先: 案内検索

stddef.h:インデックス への移動


ヘッダーファイル

stddef.h

カテゴリ

メモリルーチン

プロトタイプ

size_t offsetof(struct_type, struct_member);

説明

構造体メンバーのバイトオフセットを取得します。

offsetof は,マクロとしてのみ使用できます。引数 struct_type は struct 型です。struct_member は,メンバー選択演算子またはポインタを使ってアクセスできる struct の任意の要素です。

struct_member がビットフィールドである場合,結果は定義されません。

構造体のメモリ割り当てとアラインメントの詳細は,sizeof を参照してください。

戻り値

offsetof は,構造体の先頭から指定された構造体メンバーの先頭までのバイト数を返します。

コード例

#include <stddef.h>
struct fill_struct
{
  int _f1, _f2, _f3;
  char* _str;
};

int _tmain(int argc, _TCHAR* argv[])
{
  printf("The _str member of fill_struct starts at offset %d", offsetof(fill_struct, _str));
  return 0;
}

移植性

POSIX Win32 ANSI C ANSI C++

+

+

+