use*_*747 2 c c++ winapi unsigned-integer
哇我以为我知道我的C++,但这很奇怪
这个函数返回一个unsigned int所以我认为这意味着我永远不会得到一个负数返回吗?
该函数确定您前进或后退的时间.所以对我来说,我在澳大利亚,悉尼所以我是+10 GMT,这意味着我是UTC = LocalTime +( - 10).因此,GetTimeZoneInformation正确地确定我是-10.
但我的函数返回一个unsigned int所以不应该返回10而不是-10?
unsigned int getTimeZoneBias()
{
TIME_ZONE_INFORMATION tzInfo;
DWORD res = GetTimeZoneInformation( &tzInfo );
if ( res == TIME_ZONE_ID_INVALID )
{
return (INT_MAX/2);
}
return (unsigned int(tzInfo.Bias / 60)); // convert from minutes to hours
}
TCHAR ch[200];
_stprintf( ch, _T("A: %d\n"), getTimeZoneBias()); // this prints out A: -10
debugLog += _T("Bias: ") + tstring(ch) + _T("\r\n");
Run Code Online (Sandbox Code Playgroud)
cni*_*tar 10
你正试图打印unsigned int一个signed int.更改%d到%u
_stprintf( ch, _T("A: %u\n"), getTimeZoneBias());
^
Run Code Online (Sandbox Code Playgroud)
问题是对于大多数计算机来说,整数本身并不是正面的或负面的.这是他们被解释的方式.
因此,大的整数可能与小的(绝对值)负整数无法区分.
| 归档时间: |
|
| 查看次数: |
6663 次 |
| 最近记录: |