(ZZ from http://www.gridchina.org/~wfsun/blog/archives/000658.html)
关键字:sizeof,字节对齐,多继承,虚拟继承,成员函数指针 前向声明: 1. 定义: 字节对齐的细节和编译器实现相关,但一般而言,满足三个准则: 结构体某个成员相对于结构体首地址的偏移量可以通过宏offsetof()来获得,这个宏也在stddef.h中定义,如下: sizeof( struct ) = offsetof( last item ) + sizeof( last item ) + sizeof( trailing padding ) 到这里,朋友们应该对结构体的sizeof有了一个全新的认识,但不要高兴得太早,有一个影响sizeof的重要参量还未被提及,那便是编译器的pack指令。它是用来调整结构体对齐方式的,不同编译器名称和用法略有不同,VC6中通过#pragma pack实现,也可以直接修改/Zp编译开关。#pragma pack的基本用法为:#pragma pack( n ),n为字节对齐数,其取值为1、2、4、8、16,默认是8,如果这个值比结构体成员的sizeof值小,那么 8. 含位域结构体的sizeof 还是让我们来看看例子。
|
SIZEOF的问题
最新推荐文章于 2023-11-24 15:34:16 发布
上次在一个项目中,被一个结构体的sizeof()的问题难了不少的时间,今天在网上发现了一篇不错的文章,关于sizeof()的,与大家共享。