The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

offsetof (3)
  • offsetof (3) ( Solaris man: Библиотечные вызовы )
  • >> offsetof (3) ( Linux man: Библиотечные вызовы )
  •  

    NAME

    offsetof - offset of a structure member
     
    

    SYNOPSIS

    #include <stddef.h>
    
    size_t offsetof(type, member);
    
     

    DESCRIPTION

    The macro offsetof() returns the offset of the field member from the start of the structure type.

    This macro is useful because the sizes of the fields that compose a structure can vary across implementations, and compilers may insert different numbers of padding bytes between fields. Consequently, an element's offset is not necessarily given by the sum of the sizes of the previous elements.

    A compiler error will result if member is not aligned to a byte boundary (i.e., it is a bit field).  

    RETURN VALUE

    offsetof() returns the offset of the given member within the given type, in units of bytes.  

    CONFORMING TO

    C89, C99, POSIX.1-2001.  

    EXAMPLE

    On a Linux/i386 system, when compiled using the default gcc(1) options, the program below produces the following output:
    
    $ ./a.out
    offsets: i=0; c=4; d=8 a=16
    sizeof(struct s)=16
    
     
    

    Program source

    #include <stddef.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    int
    main(void)
    {
        struct s {
            int i;
            char c;
            double d;
            char a[];
        };
    
        /* Output is compiler dependent */
    
        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);
    }
    
     

    COLOPHON

    This page is part of release 3.14 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    RETURN VALUE
    CONFORMING TO
    EXAMPLE
    Program source
    COLOPHON


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру