The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

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

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 параметров.





Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру