04 2013 档案
摘要:关于malloc的理解:#include #include void getmemory(char *p){ p=(char *) malloc(100); strcpy(p,"hello world");}int main( ){ char *str=NULL; getmemory(str...
阅读全文
摘要:大端:大端格式是低地址处存储的是字数据的高字节,高地址处存储字节数据的低字节小端:小端格式是低地址处存的是字数据的低字节,高地址存放的是字数据的高字节STM32是小端格式。如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。地址偏移大端模式小端模式0x0012780x0134560x0256340x037812
阅读全文
摘要:结构体与结构体之间的赋值,在标准的ANSI C语言里是不允许的。Keil也好,IAR也好,AVRstudio,Vc++等等的这些个IDE环境,都是基于ANSI C语言的。所不同的是,它们在C语言的基础上做了扩展,比如说 Keil C51,就扩展了 bit 这种数据类型,Avrstudio就扩展 二进制数据表示方法 "0b",VC++扩展了结构体内允许带有函数变量,IAR则扩展了结构体相互赋值,Keil没有扩展结构体相互赋值这个功能。
阅读全文
摘要:不含位域:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal padding);3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。含位域:1) 如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字段将紧邻前一个字段存储,直到不能容纳为止;2) 如果相邻位域字段的类型相同,但其位宽之和大于类型的sizeof大小,则后面的字段将从新
阅读全文