微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C ++代码翻译和说明

如何解决C ++代码翻译和说明

| 我有以下c ++代码段。我对c ++代码有基本的了解,请根据需要更正以下代码的解释:
for (p = q->prnmsk,s = savedx->msk,j = sizeof(q->prnmsk);
           j && !(*p & *s); j--,p++,s++);
它包含什么:q是char * q(如所声明的)是根据代码的结构MSK的类型。                       q-> prnmsk包含字节数据,其中prnmask包含15个字节。 与s类似。 因此,在for循环中,随着j的减小,它将遍历每个字节并执行此“ 1”操作以继续循环,最终,如果不满足条件,则循环将退出,否则j将运行直到j == 0。 我对么? * p和* s是什么意思?它会包含字节值吗?     

解决方法

        有些人(例如我)可能会认为以下内容更具可读性
int j;
for (j = 0; j < sizeof(q->prnmsk); ++j)
{
  if ((q->prnmsk[j] & savedx->msk[j]) != 0) break;
}
这意味着将迭代q-> prnmsk和Savedx-> msk来查找位与非均不为零的第一次出现。如果j等于sizeof(q-> prnmsk),则所有位与为零。     ,        你是对的。
!(*p & *s)
表示他们想检查
q->prnmsk
savedx->msk
是否没有同时将对应的位设置为
1
。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。