物联网开发总结2--嵌入式C部分总结

1.关于memcpy使用的时候,memcpy(&b,&a,n):其中a如果是结构体传入,具体是如何传入,需要取地址符吗?

答:结构体传入的为整个结构体变量需要取地址符&,而且还要将传入的值强制转换为(u8*)类型。另外b最好是u8的指针变量。 另外关于传入的是结构体内部成员时,不管这个结构体是否为指针还是普通变量,只要这个成员是普通变量时,都要取地址符&。只有当这个结构体的成员是指针类型时,才可以不用取地址符&。

 

 2.定义指针型的结构体变量的意义是什么?

   具体原因:在定义函数时,形参定义为结构体指针时,方便调用函数时传入变量,指针变量更方便。参数传会快很多,否则会把结构体整个变量都取出来。
注:对于调用成员变量时,使用ptr->a或者  (*ptr).a

 

 3.字符串与指针的关系?

答:在C程序中,可以用两种方法访问一个字符串:a.用字符数组存放一个字符串,然后输出该字符串;b.用字符指针指向一个字符串。

 

 4.字符串指针

(1)关于结束符’\0’:实际表示的是0x00;
   
       (2)com_para[0] = 0x00;其中com_para是u8*指针,因此可以使用这个形式给所指向的地址第一个字节赋值;而*com_para = 0x00是给整个指针赋值??(u不知道对不对)

(3)关于指针赋值时,尽量传地址,而避免使用*ptr进行值传递。

 

5.右移>>和左移<<

右移(>>)

1.按位右移:>>

2.格式 :x >>位数(非负整数)

3.规则 :使操作数的各位右移,移出的低位舍弃;

4.高位 :对无符号数和有符号中的正数补 0;符号数中的负数取决于

所使用的系统 补 0 的称为“逻辑右移”,补 1 的称为“算术右移”。

5.说明 :x、y 和“位数”等操作数,都只能是整型(允许字符型数据)。

6.例如 : 5 << 2 = 20 s:0101 → 10100,

               20 >> 2 = 5 :10100 → 00101

左移(<<)

1.按位左移:<<

2.格式 :x<<位数(非负整数)

3.规则 :使操作数的各位左移,低位补 0,高位溢出。

4.例如 : 5 << 2 = 20:0101 → 10100

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值