Стандартные макросы

Standard Macros — Основные макросы.

Краткое описание

#include <glib.h> #define G_OS_WIN32 #define G_OS_BEOS #define G_OS_UNIX #define G_DIR_SEPARATOR #define G_DIR_SEPARATOR_S #define G_IS_DIR_SEPARATOR (c) #define G_SEARCHPATH_SEPARATOR #define G_SEARCHPATH_SEPARATOR_S #define TRUE #define FALSE #define NULL #define MIN (a, b) #define MAX (a, b) #define ABS (a) #define CLAMP (x, low, high) #define G_STRUCT_MEMBER (member_type, struct_p, struct_offset) #define G_STRUCT_MEMBER_P (struct_p, struct_offset) #define G_STRUCT_OFFSET (struct_type, member) #define G_MEM_ALIGN #define G_CONST_RETURN

Описание

Эти макросы обеспечивают обычное выполнение некоторых особенностей.

Детали

G_OS_WIN32

#define G_OS_WIN32

Этот макрос определяется только в Windows. Поэтому вы можете группировать Windows-специфичный код в "#ifdef G_OS_WIN32".


G_OS_BEOS

#define G_OS_BEOS

Этот макрос определяется только в BeOS. Поэтому вы можете группировать BeOS-специфичный код в "#ifdef G_OS_BEOS".


G_OS_UNIX

#define G_OS_UNIX

Этот макрос определяется только в UNIX. Поэтому вы можете группировать UNIX-специфичный код в #ifdef G_OS_UNIX".


G_DIR_SEPARATOR

#define G_DIR_SEPARATOR

Символ разделения каталогов. Это '/' в UNIX и '\' в Windows.


G_DIR_SEPARATOR_S

#define G_DIR_SEPARATOR_S

Разделитель каталогов как строка. Это "/" в UNIX и "\" в Windows.


G_IS_DIR_SEPARATOR()

#define G_IS_DIR_SEPARATOR(c)

Проверяет является ли символ разделителем каталогов. Возвращает TRUE для '/' в UNIX и для '\' или '/' в Windows.

c : символ

Начиная с версии 2.6


G_SEARCHPATH_SEPARATOR

#define G_SEARCHPATH_SEPARATOR

Символ разделитель пути поиска. Это ':' в UNIX и ';' в Windows.


G_SEARCHPATH_SEPARATOR_S

#define G_SEARCHPATH_SEPARATOR_S

Строка разделитель в пути поиска. Это ":" в UNIX и ";" в Windows.


TRUE

#define TRUE (!FALSE)

Определяет значение TRUE для gboolean типа.


FALSE

#define FALSE (0)

Определяет значение FALSE для gboolean типа.


NULL

#define NULL

Определяет стандартный указатель NULL.


MIN()

#define MIN(a, b) (((a) < (b)) ? (a) : (b))

Находит меньшее из a и b.

a : числовое значение.
b : числовое значение.
Возвращает : наименьшее из a и b.

MAX()

#define MAX(a, b) (((a) > (b)) ? (a) : (b))

Находит наибольшее из a и b.

a : числовое значение.
b : числовое значение.
Возвращает : наибольшее из a и b.

ABS()

#define ABS(a) (((a) < 0) ? -(a) : (a))

Расчитывает абсолютное значение a. Абсолютное значение это простое число без отрицательного знака.

Например,

  • ABS(-10) равно 10.

  • ABS(10) также равно 10.

a : числовое значение.
Возвращает : абсолютное значение a.

CLAMP()

#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))

Находит x между установленными лимитами low и high.

Например,

  • CLAMP(5, 10, 15) это 10.

  • CLAMP(15, 5, 10) это 10.

  • CLAMP(20, 15, 25) это 20.

x : промежуточное числовое значение.
low : допустимое минимальное значение.
high : допустимое максимальное значение.
Возвращает : значение x заключенное между диапазоном low и high.

G_STRUCT_MEMBER()

#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset)

Возвращает элемент структуры в полученном смещении, используя полученный тип.

member_type : типовое поле структуры.
struct_p : указатель в структуре.
struct_offset : смещение поля от начала структуры, в байтах.
Возвращает : элемент структуры.

G_STRUCT_MEMBER_P()

#define G_STRUCT_MEMBER_P(struct_p, struct_offset)

Возвращает указатель без типа для полученного смещения структуры.

struct_p : указатель в структуре.
struct_offset : смещение от начала структуры, в байтах.
Возвращает : указатель без типа struct_p плюс struct_offset байт.

G_STRUCT_OFFSET()

#define G_STRUCT_OFFSET(struct_type, member)

Возвращает смещение в байтах элемента структуры.

struct_type : тип структуры, например GtkWidget.
member : поле структуры, например window.
Возвращает : смещение элемента от начала struct_type.

G_MEM_ALIGN

#define G_MEM_ALIGN

Указывает количество байт по которым будет распределена память в текущей платформе.


G_CONST_RETURN

#define G_CONST_RETURN

Если G_DISABLE_CONST_RETURNS определён, этот макрос не выполняется. По умолчанию, макрос расширяется до const. Макрос должен использоваться для помещения const в функции возвращающие значения которые не должны изменяться. В основном этот макрос позволяет использовать включение const для возвращаемых константных строк по умолчанию, пока программист не отключит это. Этот макрос должен использоваться только для возвращаемых значений и для out параметров, он не действует для in параметров.