---
name: "GetUid"
section: "3tk"
platform: "linux"
package: "tk8.3-doc"
version: "8.3.5-14"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/GetUid/3tk"
---

# GetUid(3tk)

convert from string to unique identifier

```

```

## NAME

Tk\_GetUid, Tk\_Uid - convert from string to unique identifier

## SYNOPSIS

```
#include <tk.h>

#typedef char *Tk_Uid

Tk_Uid
Tk_GetUid(string)
```

## ARGUMENTS

- char *\*string* (in)

  String for which the corresponding unique identifier is desired.

  ```

  ```

## DESCRIPTION

**Tk\_GetUid** returns the unique identifier corresponding to *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 **Tk\_GetUid** is called twice, once with string *a* and once with string *b*, and if *a* and *b* have the same string value (strcmp(a, b) == 0), then **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 **strcmp**. In addition, the return value from **Tk\_GetUid** will have the same string value as its argument (strcmp(Tk\_GetUid(a), a) == 0).

## KEYWORDS

atom, unique identifier
