我有以下结构定义
标题文件:
struct SDK {
enum {
HEADER0 = 0,
HEADER1,
LINGO,
COMMAND,
LENGTH,
ACK_CMD,
ACK_STATUS
}commandFormat;
}mySDK;
我希望像这样使用它:
的main.c
switch (rxData[mySDK.commandFormat.LINGO]) {
default:
break;
}
我收到错误:请求成员'LINGO'不是结构或联合
我知道我可能做了些蠢事,但我无法弄明白到底是什么。谢谢。
答案 0 :(得分:1)
struct SDK {
enum {
HEADER0 = 0,
HEADER1,
LINGO,
COMMAND,
LENGTH,
ACK_CMD,
ACK_STATUS
}commandFormat;
}mySDK;
创建整数常量
HEADER0,
HEADER1,
LINGO,
COMMAND,
LENGTH,
ACK_CMD,
ACK_STATUS
在全球范围内。
它还定义了
struct SDK {
enum <anonymous> commandFormat;
};
调试器将commandFormat
的值解释为上述整数常量之一,
它定义了一个名为mySDK
的结构的实例。
mySDK.commandFormat
是一个整数(枚举)。
将.
应用于它是没有意义的。
答案 1 :(得分:0)
只需写下
switch (rxData[mySDK.commandFormat]) {
前提是对象commandFormat
的数据成员mySDK
已初始化,特别是LINGO
。
或写
switch (rxData[INGO]) {