Rechercher une page de manuel
offsetof
Langue: ja
Version: 2006-05-23 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
̾Á°
offsetof - ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹½ñ¼°
#include <stddef.h>size_t offsetof(type, member);
ÀâÌÀ
offsetof() ¥Þ¥¯¥í¤Ï¡¢¥Õ¥£¡¼¥ë¥É member ¤Î ¹½Â¤ÂÎ type ¤ÎÀèƬ¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤òÊÖ¤¹¡£¤³¤Î¥Þ¥¯¥í¤¬ÍÍѤʤΤϡ¢ ¹½Â¤ÂΤò¹½À®¤¹¤ë¥Õ¥£¡¼¥ë¥É¤Î¥µ¥¤¥º¤Ï¼ÂÁõ¤Ë¤è¤Ã¤ÆÊѲ½¤¹¤ë¤·¡¢ ¥³¥ó¥Ñ¥¤¥é¤Ë¤è¤ê¥Õ¥£¡¼¥ë¥É´Ö¤ËÁÞÆþ¤¹¤ë¥Ñ¥Ç¥£¥ó¥°¤Î¥Ð¥¤¥È¿ô¤â °ã¤¦²ÄǽÀ¤¬¤¢¤ë¤«¤é¤Ç¤¢¤ë¡£ ¤½¤Î·ë²Ì¡¢¤¢¤ë¥¨¥ì¥á¥ó¥È¤Î¥ª¥Õ¥»¥Ã¥È¤Ïɬ¤º¤·¤â¤½¤ì¤è¤êÁ°¤Î ¥¨¥ì¥á¥ó¥È¤Î¥µ¥¤¥º¤Î¹ç·×¤È¤Ï¤Ê¤é¤Ê¤¤¡£
member ¤¬¥Ð¥¤¥È¶³¦¤Ë°ÌÃÖ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç (¤¹¤Ê¤ï¤Á¡¢¥Ó¥Ã¥È¥Õ¥£¡¼¥ë¥É¤Î¾ì¹ç) ¤Ë¤Ï¡¢ ¥³¥ó¥Ñ¥¤¥é¤Ç¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡£
ÊÖ¤êÃÍ
offsetof() ¤Ï¡¢»ØÄꤵ¤ì¤¿¥¨¥ì¥á¥ó¥È¤Î»ØÄꤵ¤ì¤¿·¿¤ÎÃæ¤Ç¤Î ¥ª¥Õ¥»¥Ã¥È¤ò¡¢¥Ð¥¤¥Èñ°Ì¤ÇÊÖ¤¹¡£½àµò
C89, C99, POSIX.1-2001.Îã
Linux/x86 ¥·¥¹¥Æ¥à¤Ç¡¢ gcc(1) ¤Î¥Ç¥Õ¥©¥ë¥È¥ª¥×¥·¥ç¥ó¤Ç ¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¾ì¹ç¡¢²¼µ¤Î¥×¥í¥°¥é¥à¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤòÊÖ¤¹¡£
$ ./a.out
offsets: i=0; c=4; d=8 a=16
sizeof(struct s)=16
#include <stddef.h> #include <stdio.h> #include <stdlib.h> int main(void) { struct s { int i; char c; double d; char a[]; }; /* ½ÐÎϤϥ³¥ó¥Ñ¥¤¥é°Í¸¤Ç¤¢¤ë */ printf("offsets: i=%ld; c=%ld; d=%ld a=%ld\n", (long) offsetof(struct s, i), (long) offsetof(struct s, c), (long) offsetof(struct s, d), (long) offsetof(struct s, a)); printf("sizeof(struct s)=%ld\n", (long) sizeof(struct s)); exit(EXIT_SUCCESS); }
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre