考虑💭指针,数组名是一个常量指针,要么就初始化赋值,不然后面就不能改。
int i = 0x22222222;
char szTest[] = "aaaa";
func(i,szTest);// void func(int a,char *sz);
参数在栈中的形式可能为左侧为地址,右侧为数据
0x0013FCF0 0x0013FCF8
0x0013FCF4 0x22222222
0x0013FCF8 0x61616161
栈的增长方向是从大地址到小地址,就是上面的从下往上,参数就是从右边的参数->左边参数->函数返回地址
struct st_task
{
uint16_t id; // 16bit
uint32_t value; // 32bit
uint64_t timestamp; // 64bit
};
void fool()
{
st_task task = {};
uint64_t a = 0x00010001;// 32bit
memcpy(&task, &a, sizeof(uint64_t));
printf("%11u,%11u,%11u", task.id, task.value, task.timestamp);
}