2009-09-17 8 views
1

AErrorCode가 ERR_NO_HEADER_RECORD_FOUND_ON_FILE 인 경우 아래 절차에서 Field.Format ("% 04d", ErrorCode)의 값은 무엇입니까? .H 파일에열거 형 및 해당 값

어딘가에 : 일부 절차에서는

enum AErrorCode 
{ 
    ERR_UNKNOWN_RECORD_TYPE_CODE = 5001, 
    ERR_NO_HEADER_RECORD_FOUND_ON_FILE, 
    ERR_DUPLICATE_HEADER_RECORD_FOUND, 

    ERR_THIRD_PARTY_LETTER_RECORD_HAS_A_ZERO_REFERRAL_AMOUNT = 5101,  

    ERR_CALL_OCA_UNKNOWN_PROBLEM = 5999 
}; 

: 당신은 전혀 값을 지정하지 않으면

void TADataset::SetErrorStatus(AErrorCode ErrorCode) 
{ 
    NDataString Field; 
    Field.Format("%04d", ErrorCode); 
    AckRecord.SetField("oca_error_stat", "E"); 
    AckRecord.SetField("error_cd", Field); 
} 
+0

현학적 인 표현을하기 위해서는'Field.Format ("% 04d", static_cast (ErrorCode));'와 같은 캐스트가 있어야합니다. 엄밀히 말하면,'enum'은'int'와 같은 크기 일 필요는 없습니다. 대부분 intal입니다. –

답변

4
ERR_NO_HEADER_RECORD_FOUND_ON_FILE == 5002 

, 그것은 0에서 시작 enum의 다음 요소를 증가시킵니다. 값을 지정하면 다음 요소부터 시작하여 증가를 시작합니다. 후속 요소에 다른 값을 지정하여 카운터를 다시 재설정하지 않는 한. C++ 표준 7.2/1 따르면

+0

어떻게? 증가합니까? –

+0

이전에 정의 된 값을 사용하여 증가합니다. +1 –

+0

은 0으로 시작하고, 다음 값을 지정하지 않으면 1 씩 늘리고 계속 증가합니다. – Amro

2

: 제 열거에는 초기화가 없으면

<는 ...> 해당 상수의 값은 0이다. 이니셜 라이저가없는 열거 자 정의는 열거 자에게 이전 열거 자의 값을 1 씩 늘려 얻은 값을 제공합니다.

그것은 그 동등 ERR_NO_HEADER_RECORD_FOUND_ON_FILEERR_UNKNOWN_RECORD_TYPE_CODE+1에를 의미한다.