Übertragen _ als und Darstellen _ als

Übertragen _ als und darstellen als Teilen _ desselben Layouts mit Ausnahme des führenden Tokens. Das Token liest FC _ TRANSMIT AS oder FC REPRESENT _ _ _ AS, aber der zugrunde liegende Code ist üblich.

Die Beschreibung weist das folgende Layout auf:

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>

Die Flags<1> Byte bestehen aus dem oberen Flag-Nibble und dem unteren Ausrichtungs-Nibble.

Die Ausrichtungsnibbel behält die Kabelausrichtung des übertragenen Typs bei. Dies ist erforderlich, wenn die Puffergröße angepasst und die übertragene Typgröße aus dem Formatcode verwendet wird.

Das Flag nibble kann die folgenden Flags aufweisen:

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

Das PRESENTED _ TYPE _ IS _ ARRAY-Flag markiert ein Übertragungsargument der obersten Ebene als -Argument (oder stellt es als) dar, das ein Array von etwas ist und als Wert übergeben wird. Der -Oi-Interpreter verwendet dieses Flag, um ein solches Argument zu übergehen (bei dem es sich tatsächlich um einen Zeiger auf dem Stapel und nicht um das Array handelt). Die anderen beiden Flags werden auch nur in vorherigen Interpretern verwendet, um einen dargestellten Typ auf dem Stapel ordnungsgemäß zu übergehen.

Der Index für die Indexaufforderung _<2> ist ein Index der Rückrufroutinen-Doppelaufforderung (dies ist eigentlich ein Quadruple) von Funktionen. Die Tabelle wird häufig als übertragen und als dargestellt, und es gibt eine offensichtliche Zuordnung für die Position der Routinen, da derselbe Einstiegspunktedienst als und als Codes darstellt. Die Zuordnung erfolgt von _ local => zu _ xmit, zu _ local => von _ xmit, free _ inst => free _ xmit, free _ local => free _ inst.

Die _ dargestellte _ _ Typspeichergröße<2> bietet immer eine Größe für den dargestellten/lokalen Typ, einschließlich unbekannter Darstellung als Typen.

Die Puffergröße des übertragenen _ Typs _<_ 2> ist entweder 0 (null), wenn die Größe variiert, oder die tatsächliche feste Größe. Dies ist eine Optimierung, die das Überspringen einiger Rückrufe beim Dimensionieren des Puffers ermöglicht.

Der übertragene _ _ Typoffset<2> ist der übliche relative Typoffset zur formatierten Zeichenfolge des übertragenen Typs.