可能重复:
为什么glib重新定义类型?
在GTK + 2.0教程中,我可以在这里阅读以下关于数据类型的声明:
在前面的示例中您可能会注意到一些需要解释的事情.您看到的gint,gchar等分别是int和char的typedef,它们是GLib系统的一部分.这样做是为了在进行计算时绕过对简单数据类型大小的讨厌依赖.
我不明白这个解释的最后部分.为什么使用Glib数据类型会更好?
我一直在阅读一些使用的代码,gtk+
我遇到了类似gboolean
和的类型gunichar
.
只要我能理解使用gunichar
而不是wchar_t
(glib gunichar和wchar_t),我就无法真正理解使用gboolean
而不是使用bool
.
gboolean
代替bool
?有没有什么比仅仅注意代码风格的一致性?如果它被用于一般的一致性(如果一个人决定使用GLib
,人们更愿意使用那里定义的类型),那对我来说就不会那么奇怪了.但是,该代码的作者使用int
而不是gint
.作者是不是很粗心?
只是添加更多细节(官方GLib作为参考):
gunichar
被定义为 typedef guint32 gunichar
guint32
被定义为 typedef unsigned int guint32
gboolean
被定义为 typedef gint gboolean
gint
被定义为 typedef int gint