gpt4 book ai didi

c - 为什么有人会使用 gboolean (GLib) 而不是 bool 类型?

转载 作者:太空狗 更新时间:2023-10-29 17:07:38 25 4
gpt4 key购买 nike

我一直在阅读一些使用 gtk+ 的代码,我遇到过像 gbooleangunichar 这样的类型。

只要我能理解使用 gunichar 而不是 wchar_t ( glib gunichar and wchar_t ) 的意义,我就无法真正理解使用 的意义gboolean 而不是 bool

问题:使用 gboolean 而不是 bool 有什么意义?除了注意代码风格的一致性,还有什么其他的吗?

如果它用于一般一致性(如果决定使用 GLib,人们会更喜欢使用那里定义的类型).然而,该代码的作者使用 int 而不是 gint。是作者粗心大意吗?


只是为了添加更多细节(official GLib as a reference):

  • gunichar 定义为 typedef guint32 gunichar

  • guint32 定义为 typedef unsigned int guint32

  • gboolean 定义为 typedef gint gboolean

  • gint 定义为 typedef int gint

最佳答案

统一性和可维护性。如果将来某个时候引入了新的 utf8char 类型,只需更改 typedef 并重新编译即可,而无需经过数千行修补每一次使用的代码。

还要考虑到 GLib 旨在适用于范围广泛的编译器,并非所有编译器都完全符合最新规范。例如,不能假定 boolwchar_t 和固定大小类型的可用性,因为它们都随 C99 和 C11 一起提供。此外,GLib 的开发始于 1998 年(正如您从 contributors graph 中看到的那样),当时 C99 仍处于草案阶段,这些功能甚至还不是标准。

关于c - 为什么有人会使用 gboolean (GLib) 而不是 bool 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30707950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com