我有这样的代码
for(DWORD i = 0 ; i < dwInBuffSize/8 ; i++)
DES.des_ecb_encrypt((des_cblock *)InBuff+i, (des_cblock *)OutBuff+i, sched, DES_DECRYPT) ;
,其中
typedef unsigned char des_cblock[8];
我相信由于指针算术:
(des_cblock *)InBuff+i
指针前进了8个字节?而不是1?
inBuff
只是字节数组和outBuff
。
答案 0 :(得分:2)
是的,如果您执行(T*)someptr+x
,则x
会乘以sizeof(T)
。
同样适用于static_cast<T*>(somepttr)+x
当然,在添加x
之前更容易看到强制转换。