C 表达式必须有整型或枚举类型?

标签 c struct

所以我明白了。

#define MAX_MENU_OPTIONS 1

typedef struct _NEW_MENU_OPTION
{
    char* name;
    int type;
    char* opt1;
    int value1;
    int cycleid;
    int cycle_max;
    int cycle_min;
    int onenter;
} NEW_MENU_OPTION;

NEW_MENU_OPTION menu_options[MAX_MENU_OPTIONS];

然后在我的代码中。

switch(menu_options[menu_location].onenter)
{
case 0:
    break;
}

但是我在 menu_options 上遇到了一个红色错误,提示“错误:表达式必须具有整数或枚举类型”。我真的一头雾水,看不出哪里出了问题,哪里出了问题?

最佳答案

你发布的代码对我来说看起来不错,CodePad 在 quick little test 中编译它也很好.

所以虽然问题没有提到它,但我会猜测你在 Visual Studio 中工作。

在这种情况下,您看到的错误很可能是 IntelliSense 错误,而不是实际的编译器错误。有时 IntelliSense 引擎(使用不同的编译器实现)会感到困惑并报告您已经在代码中修复的错误。我在重构现有代码时经常注意到这个问题。

解决方法是构建/编译您的项目并验证错误是否消失。重建后您应该会看到一个干净的“错误列表”窗口。

关于C 表达式必须有整型或枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625379/

相关文章:

c - 如何使用 C 程序从 xml 文件中删除节点?

c++ - 外部结构前向声明

c - 为什么此 C 代码将局部结构视为指针,而它似乎不是指针?

c - 使用 XOR 交换单个位

c - 什么是内核线程?

c - C 中的线程同步 : why do they overlap

c++ - 从 C++ 中的函数输出多个值

c++ - 为什么结构的 sizeof 不等于每个成员的 sizeof 之和?

gedit中c结构的自定义文本颜色

c - 结构体中取消引用指针的错误