serialization - 了解 Ada 如何序列化记录

标签 serialization record binaryfiles ada

当我在 Ada 中调用 Write 来序列化记录时,我希望能够预测生成的二进制文件中的内容。你知道我在哪里可以查到这个吗?

我有一些遗留的 Ada 软件,它通过写入记录来生成二进制文件,我需要调试一个应该编写兼容二进制文件的 C++ 程序。所以,我想了解 Ada 在序列化记录时遵循什么规则,以便我可以确保 C++ 代码将生成功能等效的记录。

最佳答案

'Write 的序列化输出的格式与表示子句完全无关。

默认情况下,编译器将按照记录声明中写入的顺序输出没有对齐填充的记录组件,使用标准未定义的转换方案(因此您可能无法获得编译器之间的互操作性)。 GNAT(GCC Ada 编译器)以整数字节输出每个组件。

如果要使用某种不同的格式流式传输类型的值,则可以覆盖 'Write 类型。作为一个不寻常的例子,您可以流式传输到 XML。

关于serialization - 了解 Ada 如何序列化记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/84677/

相关文章:

python - Django Rest Framework 按类别重新组合查询集

Java 记录验证注解

android - Superpowered SDK : Implementing SuperpoweredRecorder. h 和设置录制路径

python - 使用 Python 修改二进制文件

java - 为什么 Java 并发处理不能处理新实例化的对象,而可以处理同一类的反序列化对象?

java - 如何序列化 Map<String, Map<MetricName, ?扩展 Metric>> 生成 Metrics Json 对象

delphi - 如何在 Delphi XE 中使用 RTTI 设置记录值

linux - 该二进制文件需要哪些库才能运行?

linux - 从流中写入 PDF 二进制文件会产生格式错误的 PDF

python - model.save_weights 和 model.load_weights 未按预期工作