结构体字节对齐
xdm,二三条好理解,但这个第一条是么意思,啥叫首地址能被成员大小整除????{:10_257:} 在线蹲个大佬{:10_279:} 一世轻尘 发表于 2020-12-19 18:52在线蹲个大佬
#include <stdio.h>
#define ADDR(a) ((int)(&(a)))
#define ADDR_PRINT(a) printf("address of "#a" = 0X%XH\n",ADDR(a))
#define SIZE_PRINT(a) printf("size of "#a" = %d\n",sizeof(a))
typedef struct tagTest
{
char _c;
double _d;
}TEST,*LPTEST;
int main(void)
{
//第一条准则并不通用,看代码运行结果。
char a = 0;
TEST t;
TEST t1;
ADDR_PRINT(t._c);
ADDR_PRINT(t._d);
SIZE_PRINT(TEST);
SIZE_PRINT(double);
printf("address of t = %X,address mod double = %d\n",ADDR(t),ADDR(t)%sizeof(double));
printf("address of t1 = %X,address mod double = %d\n",ADDR(t1),ADDR(t1)%sizeof(double));
return 0;
} xieglt 发表于 2020-12-21 19:18
看不了,操作系统不一样 一世轻尘 发表于 2020-12-21 19:34
看不了,操作系统不一样
编译通不过,改一下吧。
#define ADDR(a) (reinterpret_cast<int>(&(a)))
本帖最后由 一世轻尘 于 2020-12-21 20:01 编辑
xieglt 发表于 2020-12-21 19:43
编译通不过,改一下吧。
#define ADDR(a) (reinterpret_cast(&(a)))
还是通不过{:10_262:}
win10
页:
[1]