| Справочное описание GLib | ||||
|---|---|---|---|---|
#include <glib.h> typedef GQuark; GQuark g_quark_from_string (const gchar *string); GQuark g_quark_from_static_string (const gchar *string); const gchar* g_quark_to_string (GQuark quark); GQuark g_quark_try_string (const gchar *string); const gchar* g_intern_string (const gchar *string); const gchar* g_intern_static_string (const gchar *string);
Кварк является связью между строками и целочисленными идентификаторами. Получая либо строку, либо GQuark идентификатор, можно найти либо то, либо другое.
Кварки используются и для Datasets и для Keyed Data Lists.
Для создания нового кварка из строки, используйте g_quark_from_string() или
g_quark_from_static_string().
Для поиска строки соответствующей полученному GQuark,
используйте g_quark_to_string().
Для поиска GQuark соответствующего полученной строке,
используйте g_quark_try_string().
Другой способ использования для строкового пула поддерживающего функции кварка интернирования строки,
использование g_intern_string() или
g_intern_static_string().
Интернированная строка это канонически представленная строка. Одно важно преимущество интернированных строк в том,
что они могут сравниваться на эквивалентность с помощью простого сравнения указателя, в отличие от использования
strcmp().
typedef guint32 GQuark;
GQuark это уникальный целочисленный идентификатор специфичной строки.
GQuark g_quark_from_string (const gchar *string);
Определяет GQuark идентификатор указанной строки. Если строка не имеет текущего связанного с ней GQuark, создаётся новый GQuark, используя копию строки.
string : |
строка. |
| Возвращает : | GQuark идентификатор строки. |
GQuark g_quark_from_static_string (const gchar *string);
Определяет GQuark идентификатор указанной (статичной) строки. Если строка не имеет связанного с ней GQuark, создаётся новый GQuark, связывая с указанной строкой.
Помните что эта функция идентична g_quark_from_string(),
исключая то, что если новый GQuark создан, используется сама строка, а не
её копия. Это сохраняет память, но может использоваться только если строка всегда существует.
Она может использоваться со статически распределёнными строками в основной программе, но не со статически распределённой памятью в
динамически загружаемых модулях, если вы планируете выгружать модуль снова (например не используйте эту функцию в движках GTK+ тем).
string : |
строка. |
| Возвращает : | GQuark идентификатор строки. |
const gchar* g_quark_to_string (GQuark quark);
Определяет строку связанную с полученным GQuark.
GQuark g_quark_try_string (const gchar *string);
Определяет GQuark связанный с полученной строкой, или 0 если строка не связана с GQuark.
Если вы хотите чтобы GQuark был создан, если он не существует, используйте
g_quark_from_string(),
или g_quark_from_static_string().
const gchar* g_intern_string (const gchar *string);
Возвращает каноническое представление string. Интернированные строки могут сравниваться
на эквивалентность с помощью сравнения указателей, вместо использования strcmp().
string : |
строка |
| Возвращает : | каноническое представление строки |
Начиная с версии 2.10
const gchar* g_intern_static_string (const gchar *string);
Возвращает каноническое представление string. Интернированные строки могут сравниваться на
эквивалентность с помощью сравнения указателей, вместо использования strcmp().
g_intern_static_string() не копирует строку,
однако string не должна освобождаться или изменяться.
string : |
статичная строка |
| Возвращает : | каноническое представление строки |
Начиная с версии 2.10