<!-- ##### SECTION Title ##### -->
Type Conversion Macros

<!-- ##### SECTION Short_Description ##### -->
a portable method of converting pointers to and from integer values.

<!-- ##### SECTION Long_Description ##### -->
<para>
These macros provide a portable method of converting a #gpointer to an integer
value and vice versa. The macros are necessary because the size of a pointer
can vary across different platforms, so the type conversion has to be done
carefully to avoid corruption of the data.
</para>
<para>
Many of the GLib data structures are based on storing #gpointer values,
e.g. #GHashTable, #GList, #GSList, #GTree, #GNode.
These macros enable you to store integer values instead of #gpointer values.
Thus you can create hash tables or linked lists containing integer values.
</para>

<!-- ##### MACRO GINT_TO_POINTER ##### -->
<para>
Converts a #gint to a #gpointer.
</para>

@i: a #gint value.
@Returns: the value converted to a #gpointer.

<!-- ##### MACRO GPOINTER_TO_INT ##### -->
<para>
Converts a #gpointer to a #gint.
</para>

@p: a #gpointer value.
@Returns: the value converted to a #gint.

<!-- ##### MACRO GUINT_TO_POINTER ##### -->
<para>
Converts a #guint to a #gpointer.
</para>

@u: a #guint value.
@Returns: the value converted to a #gpointer.

<!-- ##### MACRO GPOINTER_TO_UINT ##### -->
<para>
Converts a #gpointer to a #guint.
</para>

@p: a #gpointer value.
@Returns: the value converted to a #guint.

