typedef

一、typedef 和 宏(define)的区别

typedef是定义字符类型,而宏是字符转换。

例:typedef int *pint;

#define PINT INT*

int main()

{pint a,b;

PINT c,d;                 //等同于int *c,d;所以后面的d=&e;为error。

a=&e;b=&e;c=&e;

d=&e;                         //error

二、结构体大小

原则:1.保证最大成员放在能被其大小整除的地址上。

          2.总大小是单个最大成员大小的倍数。

例:

1.struct A

{char a;           //1(+3)

int b;               //4

};                    //8

2.struct B

{char a;            //1(+1)

short b;           //2

int c;                //4

};                   //8

3.struct C

{int a;            //4

char b;          //1

};                   //5(+3)

4.struct D

{char a;            //1(+3)

int b;               //4

short c;           //2

};                     //10(+2)

5.struct E

{int a;              //4

   struct EE

     {int b;

       char c;

     }d;             //8

};                    //12

6.特殊用法

struct F

{char a;

char e;            //这句不参与使用,但作为内存对齐占位。

short b;

int c;

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值