enum denomination
{
FIVE_CENTS, TEN_CENTS, TWENTY_CENTS, FIFTY_CENTS, ONE_DOLLAR,
TWO_DOLLARS, FIVE_DOLLARS, TEN_DOLLARS
};
struct DENOM_NAME
{
char name[MAX_NAME];
enum denomination denom;
};
/* Table of names and matching denominations */
static struct DENOM_NAME denomTable[8] = {
{ "5", FIVE_CENTS },
{ "10", TEN_CENTS },
{ "20", TWENTY_CENTS },
{ "50", FIFTY_CENTS },
{ "100", ONE_DOLLAR },
{ "200", TWO_DOLLARS },
{ "500", FIVE_DOLLARS },
{ "1000", TEN_DOLLARS }
};
我已经知道用值初始化数组是可以的,但不知何故编译器会抱怨混合声明和代码(c90 btw)。我该如何解决?初始化类型结构数组
如何定义'enum denomination'?什么是错误信息? – 2014-10-01 07:47:41
将结构声明中的枚举更改为int或char,并先定义您的枚举。 枚举不会在内存中创建单元,所以它不适用于结构 enum像#define,它给出了一些常量的名称 – 2014-10-01 07:54:43
您在声明之前有一些可执行代码。看看编译器抱怨之前的几行。如果可能的话,升级到C11(甚至只是C99)编译器,或将编译选项升级到C99或(最好)C11。 – 2014-10-01 08:02:44