gpt4 book ai didi

c - 更好地使用宏定义或数组中的值的指针?

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:03 25 4
gpt4 key购买 nike

我有一个固定的值数组,它必须像现在这样,因为它是通过使用的通信协议(protocol)(与问题无关)以这种方式访问​​的,这样:

#define REGS_ARRAY_SIZE 256 
int16 Regs[REGS_ARRAY_SIZE];

每个值都有特定的用途,例如:

Regs[ENABLE_MOTOR_ADDRESS] 

将用于指示电机已启用 0 或 1。

为了更舒适地使用这些必须从我编写的代码以及通过通信协议(protocol)从外部访问的值,我认为我的选择是:

使用宏:

 #define drive_enable (Regs [ ENABLE_MOTOR_ADDRESS ])

使用指针:

 int16 *drive_enable = &(Regs [ ENABLE_MOTOR_ADDRESS ]);

其中一个比另一个更好吗?对我来说,使用宏看起来更方便,因为我避免了每次使用变量时都需要取消引用。但是我对宏一直没有好感...

有什么建议吗?

最佳答案

我建议使用函数:

int is_drive_enabled()
{
return ( Regs [ ENABLE_MOTOR_ADDRESS ] == 1);
}

void enable_drive()
{
Regs [ ENABLE_MOTOR_ADDRESS ] = 1;
}

void disable_drive()
{
Regs [ ENABLE_MOTOR_ADDRESS ] = 0;
}

关于c - 更好地使用宏定义或数组中的值的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34883179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com