如果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);
}发布于 2009-09-17 18:35:24
ERR_NO_HEADER_RECORD_FOUND_ON_FILE == 5002如果您根本不指定任何值,它将从0开始并递增enum中的下一个元素。如果指定一个值,则从下一个元素开始递增。除非您通过为后续元素指定另一个值来再次重置计数器。
发布于 2009-09-17 18:38:08
根据C++标准7.2/1:
<...>If第一个枚举数没有初始值设定项,相应常量的值为零。不带初始值设定项的枚举数定义为枚举数提供通过将前一个枚举数的值加1而获得的值。
这意味着ERR_NO_HEADER_RECORD_FOUND_ON_FILE等于ERR_UNKNOWN_RECORD_TYPE_CODE+1。
https://stackoverflow.com/questions/1440581
复制相似问题