我注意到这段代码:
if ((context->count[0] += ((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3))
context->count[1]++;
context->count[1] += ((UINT4)inputLen >> 29);
Run Code Online (Sandbox Code Playgroud)
我不明白比较:
((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3))
Run Code Online (Sandbox Code Playgroud)
就像它总是返回0,对吗?
没有这样的比较.看看括号是如何配对的:
它是
(X < ((UINT4)inputLen << 3))
Run Code Online (Sandbox Code Playgroud)
其中X=
(context->count[0] += ((UINT4)inputLen << 3))
Run Code Online (Sandbox Code Playgroud)