共用方式為


Transmit_as和Represent_as

Transmit_as和represent_as共用相同的配置,但前置標記除外;令牌會讀取FC_TRANSMIT_AS或FC_REPRESENT_AS,但基礎程式代碼很常見。

描述具有下列設定:

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 個> 位元組包含上層旗號和下對齊點。

對齊點會保持傳輸類型的線對齊。 當緩衝區重設大小,並使用格式程式代碼的傳輸類型大小時,需要這個值。

旗標可以具有下列旗標:

#define PRESENTED_TYPE_IS_ARRAY     0x10
#define PRESENTED_TYPE_ALIGN_4      0x20
#define PRESENTED_TYPE_ALIGN_8      0x40

PRESENTED_TYPE_IS_ARRAY旗標會將最上層傳輸標示為 (或表示為) 自變數,做為某個項目的陣列,並以傳值方式傳遞。 –Oi 解釋器會使用此旗標來逐步執行這類自變數(這實際上是堆棧上的指標,而不是數組)。 其他兩個旗標也只用於先前的解釋器,以正確逐步執行堆疊上呈現的類型。

quintuple_index<2> 是回呼例程四元(這實際上是四倍)函式的索引。 數據表通常以 和表示形式來傳輸,而且例程的位置有明顯的對應,因為與 和 表示為程式代碼的進入點服務相同。 對應from_local => to_xmit、to_local => from_xmit、free_inst => free_xmit、free_local => free_inst。

presented_type_memory_size<2> 一律會提供所呈現/本機類型的大小,包括未知的表示為類型。

當大小不同或實際固定大小時,transmitted_type_buffer_size<2> 為零。 這是一項優化,可在調整緩衝區大小時略過某些回呼。

transmitted_type_offset<2> 是傳輸類型格式字串的一般相對類型位移。