# ST\_FLDDEF

> [HTML Version](st_flddef.htm)

_Added October 2018_

The layout of ST\_FLDDEF, defined in [ASHINC:DYNSTRUCT.DEF](https://bitbucket.org/microsabio/soslib/src/master/907016/dynstruct.def), is:

define MAX\_ARY\_DIMS = 4            \! max # array dimensions 

deftype T\_DYN\_NAME  = S,64         \! type,size for DYNSTRUCT struct and field names

deftype T\_DEFTYP    = S,64         \! type used to store name a DEFTYPE name



defstruct ST\_FLDDEF                \! 

    map2 name,T\_DYN\_NAME           \! name of struct or field

    map2 vartyp,b,2                \! see VARTYP\_xxx

    map2 varsiz,b,4                \! size of field (or element in array)

    map2 pos,b,4                   \! offset from base of structure, base 0

    map2 subs,b,2                  \! # subscripts (0 for scalar)

    map2 subext(MAX\_ARY\_DIMS),b,4  \! # of elements in up to 4 dimensions

    map2 deftyp,T\_DEFTYP           \! name of deftype (if applic.)

endstruct



The deftyp member will contain the name of the [DEFTYPE](deftype.md) used to define the member type and size, if it didn’t use a built-in type. The idea behind including it is to allow DEFTYPEs to be used as data dictionary data types, allowing you to write generic code to handle the special formatting or other semantic attributes of members that aren’t otherwise knowable from the simple types.