// 计算给定长度数据的 16 位 CRC。
U16 GetCrc16(const U8* pData, int nLength) {
U16 fcs = 0xffff; // 初始化
while(nLength>0){
fcs = (fcs >> 8) ^ crctab16[(fcs ^ *pData) & 0xff];
nLength--;
pData++;
}
return ~fcs; // 取反
}
其中的U8* pData和函数中的*pData是什么意思
转写成php (fcs ^ *pData)该怎么写
谢谢 百度了好久都没明白星号pData的意义
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
星号
*不是位运算符,是C中的指针符号,在PHP中没有指针,所以也就没有想对应的操作。不过这段代码里,只是使用*来取指针的值,在你转化到PHP代码时,直接将指针忽略,采用对应的变量即可。pData是变量地址,一个uint8变量的地址,函数里*pData是取这个地址处变量的值。如此,经过函数处理,传入的参数值是有可能被修改的。PHP里忽略的话,传值和传址可能不一样。