struct有关问题
struct问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char title[1];
enum { DISPLAY_SUBMENU = 0, PERFORM_MENU_HANDLE } menu_action;
union
{
int menu_id;
int menu_handle_id;
} menu_action_parameter;
}ESC_MENU_ITEM;
void main()
{
ESC_MENU_ITEM item;
item.menu_action = DISPLAY_SUBMENU;
}
报错如下:
error C2065: 'DISPLAY_SUBMENU ' : undeclared identifier
C:\Documents and Settings\hp\桌面\enum.cpp(21) : error C2440: '= ' : cannot convert from 'int ' to 'enum '
Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
Error executing cl.exe.
------解决方案--------------------
item.menu_action = ESC_MENU_ITEM::DISPLAY_SUBMENU;
------解决方案--------------------
enum
{
DISPLAY_SUBMENU = 0,
PERFORM_MENU_HANDLE
};
typedef struct
{
char title[1];
int menu_action;
union
{
int menu_id;
int menu_handle_id;
} menu_action_parameter;
}ESC_MENU_ITEM;
void main()
{
ESC_MENU_ITEM item;
item.menu_action = DISPLAY_SUBMENU;
}
------解决方案--------------------
这样写:
item.menu_action = ESC_MENU_ITEM::DISPLAY_SUBMENU;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char title[1];
enum { DISPLAY_SUBMENU = 0, PERFORM_MENU_HANDLE } menu_action;
union
{
int menu_id;
int menu_handle_id;
} menu_action_parameter;
}ESC_MENU_ITEM;
void main()
{
ESC_MENU_ITEM item;
item.menu_action = DISPLAY_SUBMENU;
}
报错如下:
error C2065: 'DISPLAY_SUBMENU ' : undeclared identifier
C:\Documents and Settings\hp\桌面\enum.cpp(21) : error C2440: '= ' : cannot convert from 'int ' to 'enum '
Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
Error executing cl.exe.
------解决方案--------------------
item.menu_action = ESC_MENU_ITEM::DISPLAY_SUBMENU;
------解决方案--------------------
enum
{
DISPLAY_SUBMENU = 0,
PERFORM_MENU_HANDLE
};
typedef struct
{
char title[1];
int menu_action;
union
{
int menu_id;
int menu_handle_id;
} menu_action_parameter;
}ESC_MENU_ITEM;
void main()
{
ESC_MENU_ITEM item;
item.menu_action = DISPLAY_SUBMENU;
}
------解决方案--------------------
这样写:
item.menu_action = ESC_MENU_ITEM::DISPLAY_SUBMENU;