memset函数:内存初始化
memset(指针,值,数组大小),该函数的第一个参数是指针,所以传递的主要参数是地址
int a=16777220;转换为16进制0x01 00 00 04,则04属于低字节,01属于高字节
大小端模式:
大端模式(Big Endian):数据的高字节保存在内存的低地址中,数据的低字节保存在内存的高地址中
小端模式(Little Endian):数据的高字节保存在内存的高地址中,数据的低字节保存在内存的低地址中
网络传输中一般用大端模式
&:取址运算符
*:取值运算符(间接寻址),还可以用来定义指针变量
#include <iostream>
using namespace std;
int main ()
{
int var;
int *ptr;
int val;
var = 3000;
ptr = &var;
val = *ptr;
cout << "Value of var :" << var << endl;
cout << "Value of ptr :" << ptr << endl;
cout << "Value of val :" << val << endl;
return 0;
}
结果:
Value of var :3000 Value of ptr :0xbff64494 Value of val :3000
memcpy(void*destin,void*source,unsigned n)
destin——指向用于存储复制内容的目标地址,类型强制转换为void*指针
source——指向要复制的数据源,类型强制转换为void*指针
n ——要被复制的 字节数
void *memset(void *s, int ch, size_t n);
函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s
作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
>>:右移运算符(>>)
按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
> 结构体强制类型转换:
INT8U *CfData
*LPPUBRAM_FILE_DESCRIBE /*内存区整体描述结构体*/
pRamHeadDec = (LPPUBRAM_FILE_DESCRIBE)*CfData (实质是内存块的赋值!!!)
将CfData的内存内容按照LPPUBRAM_FILE_DESCRIBE这个结构体的格式和长度,直接覆盖到pRamHeadDec所占用的内存空间中。