问题 为什么GLib重新定义类型?


在GLib中重新定义类型背后的原因是什么?他们为什么转 char 成 gcharint 成 gint等等?


10758
2017-11-30 12:34


起源



答案:


查看 基本类型 在GLib文档中。本质上,它是为了保证某些类型将存在某些语义,无论您使用哪个C编译器或平台。 C保证的类型无论如何 typedefed只是为了使所有类型名称看起来一致。


12
2017-11-30 12:38



所以将char变成gchar的原因是让它看起来更漂亮? - Lucas
在某种程度上,但主要是因为int在所有系统上可能不一样,但gint8总是8位。 - Dave
我猜。一些gtypes(可以说)在一个简单的类型上给出了额外的语义,但我认为其余的只是为了一致性和可移植性。还要记住,GLib可以追溯到1999年,早于广泛使用的类型 uint64_t,这就是为什么他们自己推出。 - Josh Lee


答案:


查看 基本类型 在GLib文档中。本质上,它是为了保证某些类型将存在某些语义,无论您使用哪个C编译器或平台。 C保证的类型无论如何 typedefed只是为了使所有类型名称看起来一致。


12
2017-11-30 12:38



所以将char变成gchar的原因是让它看起来更漂亮? - Lucas
在某种程度上,但主要是因为int在所有系统上可能不一样,但gint8总是8位。 - Dave
我猜。一些gtypes(可以说)在一个简单的类型上给出了额外的语义,但我认为其余的只是为了一致性和可移植性。还要记住,GLib可以追溯到1999年,早于广泛使用的类型 uint64_t,这就是为什么他们自己推出。 - Josh Lee