【发布时间】:2010-11-27 11:56:48
【问题描述】:
考虑这段代码:
LARGE_INTEGER l;
size_t s;
if (s < l.QuadPart) return 1;
return 0;
当它在 x64 下编译时,它会生成 C4018 有符号/无符号不匹配编译器警告(忽略未初始化的局部变量警告)。
警告很好,因为 QuadPart 是 LONGLONG 已签名,size_t 未签名。
但是当我在 32 位下编译时没有警告?怎么会?在 32 位以下,LONGLONG 仍然是有符号的,size_t 是无符号的。
【问题讨论】:
标签: c++ visual-c++