Glib 类型(例如 guint)到标准 C 数据类型(例如 int)之间的类型转换

Type conversion between Glib types (e.g. guint) to standard C data types (e.g. int)

我正在使用一个 C 代码库,该代码库使用 API 函数 (https://developer.gnome.org/glib/stable/glib-Hash-Tables.html#g-hash-table-size) returns 一个 guint。我需要将其作为整数传递到下游。请问有什么办法吗?

我搜索了文档 Google 但一无所获。

仅仅这些 typedef 的存在就让我感到困惑。检查 glib/gtypes.h:

typedef char   gchar;
typedef short  gshort;
typedef long   glong;
typedef int    gint;
typedef gint   gboolean;

typedef unsigned char   guchar;
typedef unsigned short  gushort;
typedef unsigned long   gulong;
typedef unsigned int    guint;

所以unsigned intguint之间不需要转换,它们是同一类型

有关 unsigned intint 之间转换的常见警告适用。