编辑:我特别询问非固定尺寸类型,而不是固定尺寸类型。如上所述,我理解使用它们的(历史)目的。
在我目前的代码库中,我经常看到像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年使用这些类型是否有任何实际好处?