我调试这段代码:
result = conn_process(conn, 1, 0);
if (result == CG_ERR_OK) continue;
if (result == CG_ERR_TIMEOUT)
{
break; // i'm here!
}
Run Code Online (Sandbox Code Playgroud)
在调试器中,break;我认为这result == CG_ERR_TIMEOUT是真的.在当地人我看到:
result 131075 unsigned int
Run Code Online (Sandbox Code Playgroud)
在Watch中,我看到:
CG_ERR_TIMEOUT error: identifier 'CG_ERR_TIMEOUT' out of scope
Run Code Online (Sandbox Code Playgroud)
去定义向我展示了这样的代码:
enum {
CG_ERR_OK = 0,
CG_ERR_INTERNAL = CG_RANGE_BEGIN,
CG_ERR_INVALIDARGUMENT,
CG_ERR_UNSUPPORTED,
CG_ERR_TIMEOUT,
CG_ERR_MORE,
CG_ERR_INCORRECTSTATE,
CG_ERR_DUPLICATEID,
CG_ERR_BUFFERTOOSMALL,
CG_ERR_OVERFLOW,
CG_ERR_UNDERFLOW,
CG_RANGE_END
};
Run Code Online (Sandbox Code Playgroud)
所以我只是想知道为什么CG_ERR_TIMEOUT == 131075.多么奇怪的神奇数字?
因为CG_RANGE_BEGIN是131072(即0x20000).
enum {
CG_ERR_OK = 0,
CG_ERR_INTERNAL = CG_RANGE_BEGIN, // == 131072
Run Code Online (Sandbox Code Playgroud)
从现在开始,每个枚举值都是前一个加1:
CG_ERR_INVALIDARGUMENT, // == 131072 + 1 = 131073
CG_ERR_UNSUPPORTED, // == 131073 + 1 = 131074
CG_ERR_TIMEOUT, // == 131074 + 1 = 131075
CG_ERR_MORE, // etc.
CG_ERR_INCORRECTSTATE,
CG_ERR_DUPLICATEID,
CG_ERR_BUFFERTOOSMALL,
CG_ERR_OVERFLOW,
CG_ERR_UNDERFLOW,
CG_RANGE_END
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |