Latest web development tutorials

C makro biblioteki - offsetof ()

Biblioteka standardowa języka C - <stddef.h> Biblioteka standardowa języka C - <stddef.h>

opis

C makro bibliotekioffsetof (typ, członek-desygnatora) generuje stały typu INTEGER size_t,który jest członkiem strukturalną konstrukcji w stosunku do bajta początku offsetowego. Użytkownik przez członków danej desygnatora, w nazwie typu konstrukcji jest podany.

oświadczenie

Oto offsetof () makropolecenia.

offsetof(type, member-designator)

parametry

  • Typ - jest to typ zajęć, w którym państwa-oznacznik jest ważny członek wskaźnika.
  • członkiem-oznacznik - który jest członkiem wskaźnik typu klasy.

Wartość zwracana

To makro zwraca wartość typusize_t, pokazując przesunięcia typ członków.

Przykłady

Poniższy przykład demonstruje offsetof () Makro użytkowania.

#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);
} 

Załóżmy, skompilować i uruchomić powyższy program, który spowoduje w następujących przypadkach:

address 结构中的 name 偏移 = 0 字节。
address 结构中的 street 偏移 = 50 字节。
address 结构中的 phone 偏移 = 100 字节。

Biblioteka standardowa języka C - <stddef.h> Biblioteka standardowa języka C - <stddef.h>