C语言

C语言
1、printf("格式控制字符串",输出列表)
格式字符串以%号开始。
2、scanf()是格式输入函数。scanf("格式控制字符串",输入列表)
3、malloc(unsigned int a)向系统申请a字节的内存块空间。
4、realloc()可以重新更改malloc()已分配的内存空间大小;
5、calloc(a)在动态存储区分配a个长度size的连续空间,在分配完之后,自动初始化该内存空间为0,而malloc不出初始化,里面的数据是随机值,在C++中的new是操作符,而malloc()和calloc()是C语言中的库函数


编译屏障:是指使用伪指令"memory"告诉编译器不能把它前后的代码混淆。

内存对齐:平台原因;性能原因:在内存中数据都是按自己存储,处理器对于内存中没有对齐的数据,在读取时需要访问两次,对齐的内存访问只需要一次。
对齐规则:每个平台的编译器都有自己的对齐模数。#pragma pack()来进行人为的调整。
成员数据对齐:
struct test
{
int a;
char b;
short c;
}
是由成员数据的大小和#pragma pack()的参数来决定的
若是默认的,在则有数据成员会寻找自己整数倍的字节数的地址位置来作为自身存储的首地址,在默认情况下的整体总大小为8
若#pragma pack()中的参数是1;则按照对齐模数1来,则成员总大小为7,总大小为7
若参数是4;则为按char型的数据成员将存储字符节补全为4字节,整体总大小为12



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值