金牌会员
 
- 积分
- 1037
- 金钱
- 1037
- 注册时间
- 2021-2-4
- 在线时间
- 148 小时
|
1金钱
如题, 看到一个电机驱动的代码都是用指针,请问这和用变量有什么区别?
是效率更加高吗?
列子1:
void Step_DIR_Write(STEP_Motor_Conf *STEP_IO_Struct, BitAction BitVal)
{
STEP_IO_Struct->Flag_Dir = BitVal; //改变标志位
GPIO_WriteBit(STEP_IO_Struct->Dir_PORTx, STEP_IO_Struct.Dir_PINx, BitVal);
}
例子2:
void Step_DIR_Write(STEP_Motor_Conf STEP_IO_Struct, BitAction BitVal)
{
STEP_IO_Struct.Flag_Dir = BitVal; //改变标志位
GPIO_WriteBit(STEP_IO_Struct.Dir_PORTx, STEP_IO_Struct.Dir_PINx, BitVal);
}
请问这两个有什么区别?
为什么都是用例子1的方式来赋值
而不是用例子2的
|
最佳答案
查看完整内容[请看2#楼]
结构体当然是指针传递效率最高了。如果你直接用结构体变量作为形参不是不可以,但是每次函数都要去搞一个内存给这个变量用,结构体一般比较大,不合适的。指针的话,只占一个指针的内存,当然太划算了。
另外如果你将全局变量作为形参输入函数了,并在函数内部做了值更改,函数返回,该更改也一同销毁了,全局变量并不改变。可以看看https://blog.csdn.net/gengweiba1123/article/details/88050638
另外从代码维护角度上讲,如果 ...
|