我有一个 struct ST_transaction_t
,它包含2个 struct 、一个枚举和uint32_t
个成员,当我声明 struct ST_transaction account1
时,我得到account1': undeclared identifier error
.当我从 struct 中删除枚举类型的成员时,它起作用了.
以下是代码中出现问题的部分:
typedef struct ST_transaction_t
{
ST_cardData_t cardHolderData;
ST_terminalData_t terminalData;
EN_transState_t transState;
uint32_t transactionSequenceNumber;
}ST_transaction_t;
typedef enum EN_transState_t
{
APPROVED, DECLINED_INSUFFECIENT_FUND, DECLINED_STOLEN_CARD, INTERNAL_SERVER_ERROR
}EN_transState_t;
int main() {
ST_transaction_t account1 ;
return 0;
}
如果是这样的话:
typedef struct ST_transaction_t
{
ST_cardData_t cardHolderData;
ST_terminalData_t terminalData;
//EN_transState_t transState;
uint32_t transactionSequenceNumber;
}ST_transaction_t;
typedef enum EN_transState_t
{
APPROVED, DECLINED_INSUFFECIENT_FUND, DECLINED_STOLEN_CARD, INTERNAL_SERVER_ERROR
}EN_transState_t;
int main() {
ST_transaction_t account1 ;
return 0;
}
它工作得很好,那么为什么EN_transState_t transState
会导致这个错误,以及如何修复它?