Next: , Previous: Structure Implementation, Up: Structures


5.22.5 Structure Glossary

%align       align size –         gforth       “%align”

Align the data space pointer to the alignment align.

%alignment       align size – align         gforth       “%alignment”

The alignment of the structure.

%alloc       align size – addr         gforth       “%alloc”

Allocate size address units with alignment align, giving a data block at addr; throw an ior code if not successful.

%allocate       align size – addr ior         gforth       “%allocate”

Allocate size address units with alignment align, similar to allocate.

%allot       align size – addr         gforth       “%allot”

Allot size address units of data space with alignment align; the resulting block of data is found at addr.

cell%       – align size         gforth       “cell%”

char%       – align size         gforth       “char%”

dfloat%       – align size         gforth       “dfloat%”

double%       – align size         gforth       “double%”

end-struct       align size "name" –         gforth       “end-struct”

Define a structure/type descriptor name with alignment align and size size1 (size rounded up to be a multiple of align).
name execution: – align size1

field       align1 offset1 align size "name" –  align2 offset2         gforth       “field”

Create a field name with offset offset1, and the type given by align size. offset2 is the offset of the next field, and align2 is the alignment of all fields.
name execution: addr1addr2.
addr2=addr1+offset1

float%       – align size         gforth       “float%”

naligned       addr1 n – addr2         gforth       “naligned”

addr2 is the aligned version of addr1 with respect to the alignment n.

sfloat%       – align size         gforth       “sfloat%”

%size       align size – size         gforth       “%size”

The size of the structure.

struct       – align size         gforth       “struct”

An empty structure, used to start a structure definition.