Transmit_as ve Represent_as
Transmit_as ve represent_as baştaki belirteç dışında aynı düzeni paylaşır; belirteç FC_TRANSMIT_AS veya FC_REPRESENT_AS okur, ancak temel alınan kod yaygındır.
Açıklama aşağıdaki düzene sahiptir:
FC_TRANSMIT_AS | FC_REPRESENT_AS
flags<1>
quintuple_index<2>
presented_type_memory_size<2>
transmitted_type_buffer_size<2>
transmitted_type_offset<2>
1> bayt<bayraklar üst bayrak nibble ve alt hizalama nibble oluşur.
Hizalama parçası, iletilen türün kablo hizalamasını korur. Bu, arabellek boyutlandırma ve biçim kodundan iletilen tür boyutunu kullanırken gereklidir.
Bayrak nibble aşağıdaki bayraklara sahip olabilir:
#define PRESENTED_TYPE_IS_ARRAY 0x10
#define PRESENTED_TYPE_ALIGN_4 0x20
#define PRESENTED_TYPE_ALIGN_8 0x40
PRESENTED_TYPE_IS_ARRAY bayrağı, bir üst düzey iletim bağımsız değişkenini bir şeyin dizisi ve geçirilen değer olarak işaretler. –Oi yorumlayıcı, bu bayrağı kullanarak böyle bir bağımsız değişkenin (dizi değil, aslında yığın üzerindeki bir işaretçidir) üzerine geçer. Diğer iki bayrak da yalnızca önceki yorumlayıcılarda yığın üzerinde sunulan bir tür üzerinde doğru adım için kullanılır.
quintuple_index<2>, işlevlerin geri çağırma yordamı beşlisinin (aslında dörtlü) bir dizinidir. Tablo hem olarak iletme hem de olarak temsil etme açısından yaygındır ve aynı giriş noktaları hizmeti kod olarak aktarıp kod olarak gösterdiğinden yordamların konumu için belirgin bir eşleme vardır. Eşleme from_local => to_xmit, to_local => from_xmit, free_inst => free_xmit, free_local => free_inst' dir.
presented_type_memory_size<2>, her zaman sunulan/yerel tür için bilinmeyen tür olarak temsil eden bir boyut sağlar.
transmitted_type_buffer_size<2>, boyut değiştiğinde veya gerçek sabit boyut olduğunda sıfırdır. Bu, arabelleği boyutlandırırken bazı geri çağırmaların atlanması sağlayan bir iyileştirmedir.
transmitted_type_offset<2>, iletilen tür biçim dizesine normal göreli tür uzaklığıdır.