簡體   English   中英

枚舉及其值

[英]Enum and their Values

如果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);
}
 ERR_NO_HEADER_RECORD_FOUND_ON_FILE == 5002

如果根本不指定任何值,則該值從0開始,並遞增enum的下一個元素。 如果指定一個值,則它將從下一個元素開始遞增。 除非您通過為后繼元素指定另一個值來再次重置計數器。

根據C ++標准7.2 / 1:

<...>如果第一個枚舉器沒有初始化程序,則相應常量的值為零。 沒有初始化程序的枚舉數定義為枚舉數賦值,方法是將前一個枚舉數的值加1。

這意味着ERR_NO_HEADER_RECORD_FOUND_ON_FILE等於ERR_UNKNOWN_RECORD_TYPE_CODE+1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM