C++代码翻译和解释
C++ code translation and explanation
我有以下 c++ 代码片段。我对 c++ 代码有基本的了解。请在必要时更正我对以下代码的解释:
for (p = q->prnmsk, s = savedx->msk, j = sizeof(q->prnmsk);
j && !(*p & *s); j--, p++, s++);
它包含什么:q 是字符 *q(如声明的(是结构类型MSK,根据代码。 Q->prnmsk包含字节数据,其中prnmask包含15个字节。
对于 s,情况类似。因此,在 for 循环中,当 j 减小时,它将遍历每个字节并执行此!(*p & *s)
操作以继续循环,最终如果不满足条件,循环将退出,否则 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
。
相关文章:
- 请解释"函数1(p1,p2,p3);"的输出
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 不同翻译单元中不可重载的非内联函数定义
- 被解释为低级别const的const对象的地址
- 计算每个节点的树高,帮助我解释这个代码解决方案
- MSVC将仅移动结构参数解释为指针
- 内联程序集printf将整数解释为地址
- 有人能解释一下为什么下界是这样工作的吗C++的
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 我是c ++的新手,你能解释一下在这种情况下的指针吗
- 有人能为我解释一下C++代码吗
- 需要将一行代码从C++ Qt翻译成PyQt
- 你能解释一下什么运行时错误是如何解决它的吗?
- 请解释字谜的代码,我看不懂计数器数组,每个值已经是0
- 为什么未命名的结构内联变量在每个翻译单元中没有相同的地址?
- 有人可以向我解释为什么控制台输出 0 吗?
- 有人可以解释一下这段代码如何能够反转字符串
- QML是在编译时被翻译成本机代码,还是在运行时被解释为JavaScript在web浏览器中的运行方式
- 翻译和解释一些c++位操作到c#
- C++代码翻译和解释