C语言

来源:互联网 发布:java程序开发培训费用 编辑:程序博客网 时间:2024/06/05 07:17
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



0 0
原创粉丝点击