XtOffset() XtOffset()
Name
XtOffset - determine the byte offset of a field within a structure pointer type.
Synopsis
Cardinal XtOffset(pointer_type, field_name)
Inputs
pointer_type
Specifies a type that is declared as a pointer to the structure.
field_name Specifies the name of the field in the structure pointed to by pointer_type.
Returns
The offset in bytes of the named field from the beginning of the structure type pointed to by pointer_type.
Description
XtOffset() is a macro that computes the offset of a named field in a structure, given the field name and a type which points to the struc-
ture.
Usage
XtOffset() has been superseded by XtOffsetOf() which takes the structure type itself rather than a pointer to the structure, and is defined
in a more portable way.
XtOffset() is usually used to determine the location of an variable within a structure when initializing a resource list. It is used by
widget writers, and anyone who needs to fetch application resources with XtGetApplicationResources(). Resource fields are defined in terms
of offsets from a base address from the beginning of a widget. Thus, a resource value can be kept up to date by the Resource Manager with-
out any knowledge of the instance structure of the widget; it uses just a relative byte offset.
Background
XtOffset() is a macro defined as follows for most architectures:
#define XtOffset(p_type,field) ((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
See Also
XtOffsetOf(1).
Xt - Utilities XtOffset()