我定义了以下结构
头文件:
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”使用非结构体或联合体
我知道我可能正在做一些愚蠢的事情,但是我无法弄清楚到底是什么。谢谢。
最佳答案
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
是整数(枚举)。将
.
应用于它没有任何意义。