Tôi đang xử lý mã đã được viết không phải bởi tôi. Tôi có tuyên bố này:
// p is type of std::unique_ptr<uint8_t[]>
if (p < 0) { /* throw an exception */ }
Vậy p < 0
trong bối cảnh này có nghĩa là gì?
Trên trang tài liệu , tôi tin rằng trường hợp của tôi là 16) y < nullptr
, nơi 0
là nullptr
.
Nhưng nó làm gì?
p==-1
là một xử lý không hợp lệ. Vì 2^64
là một con số khổng lồ lố bịch nên bất kỳ sự hợp lý p
nào cũng luôn tích cực. Vì vậy, p<0
kiểm tra xử lý không hợp lệ của WINAPI. Đây không phải là một mã tốt.
uint8_t*
(hoặc thậm chí là mảng uint8_t
) không? Tôi nghĩ rằng họ là void*
, phải không?
void*
có macro HANDLE_PTR hoặc một cái gì đó về cơ bản là long*
iirc.