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