一行中两个等号?

2024-03-30

有人可以解释一下这是做什么的以及它如何是合法的 C 代码吗?我在这段代码中找到了这一行:http://code.google.com/p/compression-code/downloads/list http://code.google.com/p/compression-code/downloads/list,这是 Vitter 算法的 C 实现自适应霍夫曼编码 http://en.wikipedia.org/wiki/Adaptive_Huffman_coding

ArcChar = ArcBit = 0;

从函数来看:

void arc_put1 (unsigned bit)
{
    ArcChar <<= 1;

    if( bit )
        ArcChar |= 1;

    if( ++ArcBit < 8 )
        return;

    putc (ArcChar, Out);
    ArcChar = ArcBit = 0;
}

ArcChar 是一个intArcBit 是一个unsigned char


表达式的值(a = b)的值是b,所以你可以用这种方式链接它们。它们也是右结合的,所以一切顺利。

本质上

ArcChar = ArcBit = 0;

is (approximately1) the same as

ArcBit = 0;
ArcChar = 0;

由于第一个赋值的值是被赋值的值,因此0.

就类型而言,尽管ArcBit is an unsigned char分配的结果将扩大到int.


1   It's not exactly the same, though, as R.. points out in a comment below.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一行中两个等号? 的相关文章

随机推荐

  • SqlCommandBuilder 如何执行其操作以及如何阻止 ReSharper 删除它的建议?

    我不明白怎么办SqlCommandBuilder http msdn microsoft com en us library system data sqlclient sqlcommandbuilder aspx做它的事 我有以下代码 p
  • JPA 2.1 ConstructorResult 导致 ClassCastException

    结果集中的对象被转换为 对象 而不是我在 SQLResultSetMapping 对象中指定的对象 我正在尝试获取 ConstructorResult 的句柄 并创建了一个包含简单联接的查询 并尝试获取结果集并循环打印它 以确保它是正确的
  • 我如何检查 base64 字符串是否是文件(什么类型?)?

    我参加了 Spentalkux 挑战https 2020 ractf co uk https 2020 ractf co uk 这是我第一次参加CTF挑战 所以我解决了https github com W3rni0 RACTF 2020 b
  • MVC2 --> MVC3 升级

    今天MVC3发布了 我想问一下是否有人在从MVC2升级到MVC3 不改变视图中的任何内容 的过程中遇到过问题 我目前正在使用 EF4 Telerik 扩展 我应该升级 还是应该等待 我目前负责的项目的首席开发人员安装并升级了 MVC2 到
  • Rvest:获取节点文本而不是其子节点的文本

    方法html text 来自 R 包 rvest 连接节点的文本和它的所有孩子 我想提取只有父亲的文字 对于以下示例 html text gives 你好再见 我想得到只是GOODBYE 我怎么才能得到它 div class joke di
  • 如果所有子级都满足条件,则选择父级

    我的表格设置如下 Parent id Child id parent id x y 我想找到父母 或者不同的parent id 如果allChild 中包含给定parent id 的行满足涉及x 和y 的条件 在我的例子中x y 例如 Pa
  • GPS 坐标(以度为单位)来计算距离

    在iPhone上 我以十进制度数获取用户的位置 例如 纬度39 470920和经度 0 373192 也就是A点 我需要用另一个 GPS 坐标 同样以十进制表示 B 点创建一条线 然后 计算从 A 到 B 的线与另一个点 C 之间的距离 垂
  • 如何编译jade模板文件来获取字符串?

    我的玉模板文件中有一个视图逻辑 如何将模型传递给j ade并获取html以通过电子邮件进一步发送 您可以尝试以下操作 var jade require jade fs require fs fs readFile template jade
  • 在 UIImageView 之上绘图以使图像透明

    我正在开发一个 iPhone 应用程序 其中当用户在图像上移动手指时 我需要通过将其 alpha 级别设置为 0 来使图像的一部分透明 基本上 如果您碰巧知道应用程序商店应用程序 iSteam 用户应该能够在顶部图像上移动手指 这将使背景图
  • Select2 多重选择 - 以编程方式取消选择/取消选择项目

    我有一个 select2 列表和一组外部按钮 我想单击外部按钮并取消选择 select2 列表中的相应项目 我知道我可以使用命令从外部值进行项目选择 external btn click function select2 val CA tr
  • 如何使用DexClassLoader从aar文件动态加载类

    我已经成功地通过以下方式从 dex 文件动态加载类 enter code here File file getDir dex 0 DexClassLoader dexClassLoader new DexClassLoader data d
  • Jenkins 声明性管道:如何重命名“声明性:后操作”步骤?

    我有一个声明式管道 如下所示 pipeline stages post success failure 它导致最后一步的创建 称为 声明性 后置操作 Q 如何重命名 声明性 操作后 步骤 我想要一个有意义的名称 例如 发送电子邮件通知 UP
  • UIButton 上的 iOS NSAttributedString

    我在用着iOS 6 所以属性字符串应该很容易使用 对吗 嗯 没那么多 我想做的事 使用自定义子类UIButton 它没有做任何定制的事情titleLabel 我想要一个多行属性标题 即 第一行全部大写 我意识到这不是属性的一部分 Bolde
  • git diff - 仅显示远程上的新内容

    我在 github 上有一个本地存储库和一个远程存储库 由于商业原因 它们不同步 我已经在我保留的本地上做了很多工作 现在我手动将远程的所有新内容添加到我的本地 没有分支机构 当我使用该命令时 git diff color master o
  • 向 JsonOutputFormatter 构造函数提供 ArrayPool 对象

    从 net RC2 升级到 RTM 后 我发现我需要向派生自 ArrayPool 的 JsonOutputFormatter 构造函数提供一个参数 我如何获得这个对象 我手动新建 JsonOutputFormatter 因为我需要配置 Re
  • Quartz API 和 Joda Time API 之间有什么关系吗?

    是否可以在 JodaTime 中创建一个日期 然后让 Quartz 使用 JodaTime 对象安排作业 我们可以给 Quartz API 一个Period jodaPeriod 以便在一天中的特定时间段内运行任务吗 这两个 API 是否相
  • C++ char 数组输入 - 解释

    我有一个练习 编写一个程序 接收一个句子 然后从每个单词中取出第一个字母并创建一个新单词 我的代码 int main char str new char 50 for int i 0 i lt 50 i str i NULL cin gt
  • 预提交钩子文件暂存以进行提交

    如果您在 Git 中有一个用于创建 或修改 文件的预提交挂钩 那么该文件是否需要暂存才能提交 例如 如果我有一个预提交挂钩来创建某些代码的缩小版本 我是否需要git add那个缩小版本可以包含在提交中吗 是的 您必须自己将文件添加到索引中
  • 是否可以通过 Pip 安装部分 Python 包?

    我有一个被许多项目使用的内部实用程序库 从实用程序库中提取的代码中的项目之间有相当多的重叠 但随着库的增长 任何单个项目获得的不会使用的额外内容也会增加 如果该库仅包含 python 那么这不会成为问题 但该库也捆绑在二进制文件中 Exam
  • 一行中两个等号?

    有人可以解释一下这是做什么的以及它如何是合法的 C 代码吗 我在这段代码中找到了这一行 http code google com p compression code downloads list http code google com