使用glib typedef(gint等)的目的是什么?

时间:2015-08-10 10:22:28

标签: c glib

编辑:我特别询问非固定尺寸类型,而不是固定尺寸类型。如上所述,我理解使用它们的(历史)目的。

在我目前的代码库中,我经常看到像gint,guint,gboolean,gpointer等Glib类型。

查看头文件,它们只是标准C类型的新名称:

typedef char   gchar;
typedef short  gshort;
typedef long   glong;
typedef int    gint;
typedef gint   gboolean;
typedef void* gpointer;

使用这些typedef的目的是什么?在我看来,我们只是隐藏信息,特别是在gpointer的情况下,它被类型化为非指针签名。还使用gboolean代替C99中的C标准布尔值(_Bool定义为单字节类型,而不是例如AMD64 Sys V ABI和ARMv7 ABI中的int。)

在我们有 stdint 之前我理解固定宽度typedef的目的,并且在 stdbool 之前可能还有gboolean但是在2015年使用这些类型是否有任何实际好处?

1 个答案:

答案 0 :(得分:1)

它们仅为了一致性而引入,并且没有理由使用它们。请参阅Havoc Pennington的this comment(DBus和GNOME开发人员)。