offsetof(3) Library Functions Manual offsetof(3) NUME offsetof - decalajul unui membru al structurii BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include size_t offsetof(type, member); DESCRIERE Macro offsetof() returneaza decalajul campului member de la inceputul structurii type. Aceasta macro este utila deoarece dimensiunile campurilor care compun o structura pot varia de la o implementare la alta, iar compilatorii pot insera numere diferite de octei de umplutura intre campuri. In consecina, decalajul unui element nu este neaparat dat de suma dimensiunilor elementelor anterioare. Se va produce o eroare de compilare daca member nu este aliniat la o limita de octet (de exemplu, este un camp de bii). VALOAREA RETURNATA offsetof() returneaza decalajul membrului member dat in cadrul tipului type dat, in unitai de octei. STANDARDE C11, POSIX.1-2008. ISTORIC POSIX.1-2001, C89. EXEMPLE Pe un sistem Linux/i386, atunci cand este compilat folosind opiunile implicite gcc(1), programul de mai jos produce urmatoarea ieire: $ ./a.out offsets: i=0; c=4; d=8 a=16 sizeof(struct s)=16 Sursa programului #include #include #include int main(void) { struct s { int i; char c; double d; char a[]; }; /* Ieirea depinde de compilator */ printf("decalaje: i=%zu; c=%zu; d=%zu a=%zu\n", offsetof(struct s, i), offsetof(struct s, c), offsetof(struct s, d), offsetof(struct s, a)); printf("sizeof(struct s)=%zu\n", sizeof(struct s)); TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.15 17 mai 2025 offsetof(3)