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

时间:2017-10-01 23:25:02

标签: c type-conversion glib

我正在使用一个C代码库,它使用一个返回guint的API函数(https://developer.gnome.org/glib/stable/glib-Hash-Tables.html#g-hash-table-size)。我需要将它作为int传递给下游。我想知道是否有办法做到这一点?

我搜索了文档和谷歌,但却空了。

1 个答案:

答案 0 :(得分:1)

这些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之间进行转换的常规警告适用。