分析下面的代码,求运行结果(64位)。
#include <stdio.h>struct
{int id;unsigned char arg;char *p;void (*func)(void);
} test;int main(void)
{printf("sizeof(test.id):%d\n", sizeof(test.id));printf("sizeof(test.arg):%d\n", sizeof(test.arg));printf("sizeof(test.p):%d\n", sizeof(test.p));printf("sizeof(test.func):%d\n", sizeof(test.func));printf("sizeof(test.test):%d\n", sizeof(test));return 0;
}
分析:
char —— 1字节
short —— 2字节
int —— 4字节
float —— 4字节
double —— 8字节
指针 —— 4字节
这里主要还要注意字节对齐的问题,以最小公倍数为基本单位;这里是4字节对齐。(具体字节对齐的知识可以百度了解)