#  Copyright (c) 1990 The Regents of the University of California.
#  Copyright (c) 1994-1996 Sun Microsystems, Inc.
#  See the file "license.terms" for information on usage and redistribution
#  of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
#

=head1 NAME

Tk_GetUid, Tk_Uid - convert from string to unique identifier

=for category C Programming

=head1 SYNOPSIS

B<#include E<lt>tk.hE<gt>>

B<#typedef char *Tk_Uid>

Tk_Uid
B<Tk_GetUid>(I<string>)

=head1 ARGUMENTS

=over 4

=item char *string (in)

String for which the corresponding unique identifier is
desired.

=back

=head1 DESCRIPTION

B<Tk_GetUid> returns the unique identifier corresponding
to I<string>.
Unique identifiers are similar to atoms in Lisp, and are used
in Tk to speed up comparisons and
searches.  A unique identifier (type Tk_Uid) is a string pointer
and may be used anywhere that a variable of type ``char *''
could be used.  However, there is guaranteed to be exactly
one unique identifier for any given string value.  If B<Tk_GetUid>
is called twice, once with string I<a> and once with string
I<b>, and if I<a> and I<b> have the same string value
(strcmp(a, b) == 0), then B<Tk_GetUid> will return exactly
the same Tk_Uid value for each call (Tk_GetUid(a) == Tk_GetUid(b)).
This means that variables of type
Tk_Uid may be compared directly (x == y) without having to call
B<strcmp>.
In addition, the return value from B<Tk_GetUid> will have the
same string value as its argument (strcmp(Tk_GetUid(a), a) == 0).

=head1 KEYWORDS

atom, unique identifier