"for XXX use" 子句对空记录有意义吗?

Does a "for XXX use" clause make any sense for a null record?

我的任务是为我们所有的记录类型添加表示 (rep) 子句,这些子句将在消息中发送到另一个处理器。它是不同的 CPU 制造商、编译器和编程语言,因此存在 misalignment/misinterpretation.

的危险

显然,type XXX is record 需要 for XXX use 每个字段都有适当的字节和位数据。

type null_record is null record;呢?

for null_record use
   null;
end record;

无法编译并且似乎没有任何意义。

老板正在推动 100% 代表条款,有 'size'alignment 'Object_sizeValue_sizepragma pack,但肯定不会对空记录有意义吗?

如果 record representation clause 对所有组件强制使用 component clause 就有意义了。在那种情况下,编译器会检测到 record definition 的任何更改,从而迫使您也查看 representation clause当然不是这样的,所以你说得对,没有多大意义。

但是,如果你的老板真的坚持,正确的语法是:

for null_record use
record
end record;