我是靠谱客的博主 威武悟空,最近开发中收集的这篇文章主要介绍offsetof函数的应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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  ele‐
    ments.


    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=%ldn",
        (long) offsetof(struct s, i),
        (long) offsetof(struct s, c),
        (long) offsetof(struct s, d),
        (long) offsetof(struct s, a));
    printf("sizeof(struct s)=%ldn", (long) sizeof(struct s));


    exit(EXIT_SUCCESS);
}


最后

以上就是威武悟空为你收集整理的offsetof函数的应用的全部内容,希望文章能够帮你解决offsetof函数的应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部