[STM32F4] 使用指针时出现问题。

[复制链接]
86|4
zhouyou99 发表于 2025-9-2 10:22 | 显示全部楼层 |阅读模式
有人能帮忙指出指针使用的问题所在吗?代码示例如下:

在第36行:workMode->current = workMode->intend;

这行代码没有覆盖/改变值。

如果我改成这样:*workMode->current = *workMode->intend;
出现这样的错误error: invalid type argument of unary '*' (have 'int')

代码如下/* Enum */
typedef enum
{
        enWorkMode_0 = 0,
        enWorkMode_1 = 1,
        enWorkMode_2 = 2,
        enWorkMode_3 = 3,
} WorkingModes_e;

/* Structure */
typedef struct
{
        WorkingModes_e current;
        WorkingModes_e intend;
} WorkModeObj_t;

/* Variable */
WorkModeObj_t workModeObj;

/* Declare */
void IndicationCheck(WorkModeObj_t *workMode);

/* Main */
int main(void)
{
        workModeObj.current = enWorkMode_0;
        workModeObj.intend = enWorkMode_1;
       
        IndicationCheck(&workModeObj);
       
}

/* Function */
void IndicationCheck(WorkModeObj_t *workMode)
{
        workMode->current = workMode->intend;
}

豌豆爹 发表于 2025-9-2 14:49 | 显示全部楼层
原始代码是正确的,不需要 * 解引用。
duo点 发表于 2025-9-2 16:49 | 显示全部楼层
如果值没有改变,可能是调试器显示问题或后续代码修改了值。
onlycook 发表于 2025-9-2 19:50 | 显示全部楼层
检查是否有其他代码干扰。
七毛钱 发表于 2025-9-2 19:51 | 显示全部楼层
调试器是否能正确显示枚举值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

41

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部