标签: c++ c winapi
Func原型:
foo(_out_ PSIZE_T arg);
用法:
LARGE_INTEGER offset = {0}; foo(&offset.QuadPart); // Is it safe ?
参考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa383713(v=vs.85).aspx
答案 0 :(得分:5)
该文档将QuadPart定义为LONGLONG。 This将LONGLONG定义为64位__int64和32位 double。 This将LONGLONG定义为__int64。
__int64
double
LONGLONG
如果你编译为32位,那么它肯定是错的,因为size_t是一个无符号的32位整数。如果编译为64位,那么仍然错误,因为size_t是 unsigned int并且LONGLONG已签名。
因此,它在64位中也不正确,因为LONGLONG已签名且size_t未签名,正如Steve所说。
无论如何,您的编译器应将其标记为错误。