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_nameSpecifies 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 structure.
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 without 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) #define XtOffset(p_type,field) ((Cardinal) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL)))
See Also
Copyright O’Reilly & Assoc. — X Toolkit Intrinsics Reference Manual © O’Reilly & Associates