Макросы приведения Glib

#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 вместо этого.