hi - 我正在使用带有Microchip dsPIC33F CPU的XC16 C编译器。我正在尝试使用枚举来存储设备的状态。我有访问器来获取和设置设备状态。状态是(或应该)在名为“currentNodeState”的变量中捕获,该变量使用以下语句声明: `
typedef enum NodeState currentNodeState;
然后我在set accessor中使用它:
void SetNodeState(NodeState state)
{
currentNodeState = state;
}
导致以下编译器错误:Node_IO.c:168:22:错误:预期标识符或'('before'='令牌 有关错误消息的原因的任何建议 吉姆
答案 0 :(得分:0)
您需要定义枚举的合法值。
Cplusplus在枚举上有一个很好的写作(靠近页面底部):http://www.cplusplus.com/doc/tutorial/other_data_types/
以下是我的代码中的修改示例:
typedef enum
{
ADJUST_NONE,
ADJUST_FINE,
ADJUST_COARSE,
ADJUST_INVALID
} adjustment_state_t;
adjustment_state_t ADJUSTER_StateUpdate(adjustment_state_t currentState,
uint8_t thresholdViolation);
函数的有效输入是枚举中的任何值。 ADJUST_NONE = 0,每个后续值比最后一个值高1。这使得ADJUST_INVALID = 3。