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

Lev*_*i H 3 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];
Run Code Online (Sandbox Code Playgroud)

然后在我的代码中.

switch(menu_options[menu_location].onenter)
{
case 0:
    break;
}
Run Code Online (Sandbox Code Playgroud)

但我在menu_options上有一个红色错误的东西,说"错误:表达式必须有整数或枚举类型".我真的很困惑,我看不出有什么不对,有什么不对?

Cod*_*ray 8

您发布的代码对我来说很好,而CodePad在快速的小测试中编译它就好了.

所以尽管问题没有提及,但我猜你还在使用Visual Studio.

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

修复是构建/编译您的项目并验证错误消失.重建后,您应该看到一个干净的"错误列表"窗口.