Как применять типы в Gtk+
Версия: 0.1 Aвтор: Андрей Ржавсков (Andrey Rjavskov [Rzhavskov]) as known rjaan | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.Введение | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Разработка графичесrких программ в Gtk+ ведется в объектно-ореентированной среде, которая базируется на объектной системы GLib (библиотека gobject) для языка Си (далее по тексту — С/GObject). Её не следует путать с библиотекой GLIB, предоставляющей функциональный набор для работы с фундаментальными типами и алгоритмами в Gtk+, такими как списки, хэши и т.д. В статье Как создать главное окно программы в Gtk+ создавался пользовательский (статический) тип UGtkMainWindow с использованием интерфейса прикладного программирования GType (далее — API GType), на котором строится вся работа с типами в С/GObject. По сути API GType является окружением С/GObject в части индентификации типов и их управления. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Идентификация и управление типами в С/GObject | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.1. Статические и фундаментальные типы | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Как древние люди представляли себе, что земля держится на китах, так и С/GObject основывается на API GType, которые обеспечивают регистрацию и манипулирование типами данных, определенных пользователем объектов и интерфейсных типов. В настоящее время, API GType позволяют программисту создавать и манипулировать двумя видами типов — статическими и фундаментальными. Остальные виды типизации, используемой в С/GObject являются лишь ветлением данных двух типов.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2. Набор базовых типов в С/GOBJECT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
В качестве базового набора типов в С/GOBJECT используются идентификаторы фундаментальных и производных типов Си, образованных спецификатором typedef. Более подробную информацию о работе с фундаментальными и производными типами в Си можно почерпнуть в статье Основные операции с типами данных в С/С++. Язык программирования Си оперирует следующими фундаментальными типами:
В C/GObect главным образом используются идентификаторы типов, которые можно разделить на четыре группы:
В С/GObject определены макросы для лимитирование значений стандартных интегральных типов и типов с плавающей точкой, которые перечислены ниже, в следующей таблице.
Для типов gulong, glong, gsize, gssize, goffset, gintptr и guintptr размерность изменяется в зависимости от того какая разрядность имеет ваша система, так на 32 разрядной системе перечисленные типы будут иметь 32 разряда, а на 64-х разрядной соответственно 64. Остальные типы всегда будут иметь размер не более 32-х разрядов в силу своей малой размерности. Все выше перечисленные макросы минимальной и максимальной размерности типов обычно используются для проверки соблюдения размера данных в операциях приводящих к переполнению типа или при работе с массивами данных во-избежание выхода за их границы. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4. Библиография | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.1. GObject Reference Manual | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вернуться к Оглавлению | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2010-2014 rjaan as Andrey Rjavskov(Rzhavskov) <rjaan@yandex.ru> <arjavskov@gmail.com> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сайт создан в системе uCoz
|