#c #casting #glib
#c #Кастинг #glib
Вопрос:
В Gtk есть макросы приведения, которые позволяют изменять тип объекта gtk:
GTK_WIDGET(gtktoolbox);
Glib работает аналогичным образом (насколько я могу судить), но я не могу найти макросы для типов данных:
G_INT(); // doesn't work
GINT(); // doesn't work
// etc
Что это за макросы приведения glib? Или я должен просто использовать (type) variable
вместо этого?
Я думал, весь смысл этих макросов в том, чтобы сделать это менее рискованным? Или это применимо только к объектам gtk из-за их сложного типа?
Ответ №1:
GTK использует некоторую магию для выполнения динамической проверки типов и типобезопасных приведений. http://openbooks .sourceforge.net/books/wga/gtk.html#AEN194 Это работает для объектов GTK, но не для примитивных типов, таких как int. Просто используйте (int) var
вместо этого.