c - 编码(marshal)处理/解封处理与序列化/反序列化之间有什么区别?

标签 c arrays go stream byte

  1. 这两个词的意思相同吗?
  2. 如果不是,两者有什么区别?

最佳答案

我使用术语“编码”来表示“将数据/参数置于一种形式,使它们可以通过只接受特定形式的接口(interface)”,而“序列化”具体表示“用字节流表示数据”。也就是说,序列化是编码的一种方法,但在我称之为编码的领域之外也有用途。

一些非序列化的编码(marshal)处理示例:

  • 将系统调用的参数放入内核系统调用入口点接受的寄存器中。 (我不会将此称为序列化,因为寄存器之间没有抽象顺序,并且因为某些数据可能位于实际寄存器之外,而是由它们指向。)
  • 从 JSON 或 XML 源构建树结构以传递给需要树的接口(interface)。 (这不是序列化,因为形式是语言级对象,它们之间有引用,而不是字节流。)
  • 在主机应用程序和嵌入式语言(如 Lua)之间来回传递数据。

关于c - 编码(marshal)处理/解封处理与序列化/反序列化之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54916540/

相关文章:

macos - go version 命令显示更新到 1.8 后的旧版本号

c - 使用 fgets 从 stdin 读取,如果输入大于大小,则会出错

c - 如何调试这个基本的 OR 程序?

python - 按给定行对 3D 数组进行排序

javascript - 根据条件获取第一个和最后一个数组

去获取 hashcorp/levant 失败

database - 在PostgreSQL中联接两个表,其中一个内容为Array字段,另一个为该数组的主表

c++ - 是否有任何理由更喜欢使用有符号或无符号整数来表示位列表?

C:指向任何类型的指针?

javascript - 使用 Textarea 创建数组的内容