php - 问一段C语言中的位运算函数的意义
PHP中文网
PHP中文网 2017-04-10 17:38:32
[PHP讨论组]
// 计算给定长度数据的 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的意义

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
ringa_lee

星号*不是位运算符,是C中的指针符号,在PHP中没有指针,所以也就没有想对应的操作。不过这段代码里,只是使用*来取指针的值,在你转化到PHP代码时,直接将指针忽略,采用对应的变量即可。

天蓬老师

pData是变量地址,一个uint8变量的地址,函数里*pData是取这个地址处变量的值。如此,经过函数处理,传入的参数值是有可能被修改的。PHP里忽略的话,传值和传址可能不一样。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号