GLib

GTK+ 2.0 Tutorial
<<< Previous |  | Next >>>

# GLib

GLib is a lower-level library that provides many useful definitions and functions available for use when creating GDK and GTK applications. These include definitions for basic types and their limits, standard macros, type conversions, byte order, memory allocation, warnings and assertions, message logging, timers, string utilities, hook functions, a lexical scanner, dynamic loading of modules, and automatic string completion. A number of data structures (and their related operations) are also defined, including memory chunks, doubly-linked lists, singly-linked lists, hash tables, strings (which can grow dynamically), string chunks (groups of strings), arrays (which can grow in size as elements are added), balanced binary trees, N-ary trees, quarks (a two-way association of a string and a unique integer identifier), keyed data lists (lists of data elements accessible by a string or integer id), relations and tuples (tables of data which can be indexed on any number of fields), and caches.

A summary of some of GLib's capabilities follows; not every function, data structure, or operation is covered here. For more complete information about the GLib routines, see the GLib documentation. One source of GLib documentation is http://www.gtk.org/.

If you are using a language other than C, you should consult your language's binding documentation. In some cases your language may have equivalent functionality built-in, while in other cases it may not.

# Definitions

Definitions for the extremes of many of the standard types are:

    G_MINFLOAT
    G_MAXFLOAT
    G_MINDOUBLE
    G_MAXDOUBLE
    G_MINSHORT
    G_MAXSHORT
    G_MAXUSHORT
    G_MININT
    G_MAXINT
    G_MAXUINT
    G_MINLONG
    G_MAXLONG
    G_MAXULONG
    G_MININT64
    G_MAXINT64
    G_MAXUINT64

Also, the following typedefs. The ones left unspecified are dynamically set depending on the architecture. Remember to avoid counting on the size of a pointer if you want to be portable! E.g., a pointer on an Alpha is 8 bytes, but 4 on Intel 80x86 family CPUs.

    char   gchar;
    short  gshort;
    long   glong;
    int    gint;
    int    gboolean;

    unsigned char   guchar;
    unsigned short  gushort;
    unsigned long   gulong;
    unsigned int    guint;

    float   gfloat;
    double  gdouble;

    unsigned int  gsize;
    signed int    gssize;

    void*       gpointer;
    const void* gconstpointer;

    gint8
    guint8
    gint16
    guint16
    gint32
    guint32
    gint64
    guint64

<<< Previous | Home | Next >>>
Functions |  | Doubly Linked Lists