int original_dat = * Str; //记录当前地址
int(Str) - int(original_dat)?????????
你确定这样记录地址?地址还有负数的?如果两个地址被看成负数,造成减出来是负数怎么办?
unsigned int original_dat = (unsigned int )Str;//不带*才是地址值本身,带了是把Str[3],Str[2],Str[1],Str[0]这四个字节的数据合起来看作(unsigned int )赋值给original_dat。