添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
听话的香菜  ·  Stdlib.h: No such ...·  4 月前    · 
热情的登山鞋  ·  Re: attaching a USB ...·  1 年前    · 
重情义的八宝粥  ·  Compare tools for C ...·  1 年前    · 
忧郁的皮带  ·  Projects/Vala/DBusClie ...·  1 年前    · 
聪明的作业本  ·  Sql like模糊查询 ...·  2 月前    · 
冲动的啄木鸟  ·  华尔街见闻·  3 月前    · 
捣蛋的针织衫  ·  Library Search·  4 月前    · 
开朗的烤红薯  ·  职业专栏 - JX3BOX·  5 月前    · 

Glib数据类型

Glib提供了自己的一组在GTK+和GNOME开发中使用的替代标准C数据类型的数据类型。这样做的原因不仅是便于阅读和使用,而且还便于移植。不管在何种平台上编译应用程序,许多平台对数据的尺寸和运算都会具有许多相同的限制。Glib数据类型保证不管什么样的系统和平台,都是相同的大小。

Glib的数据类型

​ 上述这些类型,可以保证一致性和可读性。不管编译应用程序的平台是什么,定义一组具有可保证长度的数据类型将是一种很好的想法,同时笔记guchar减少了击键次数(unsigned char)。
​ 测试了一下每种数据类型所占的字节数:

gboolean 真假或开关的值,一般与Glib定义的TRUE和FALSE常量使用 gpointer 对应与void *,但是可读性更强 gchar、guchar 对应一个字符和一个无符号字符 gint、guint、gshort 取代标准c的相应类型 glong、gulong 长度根据硬件和操作系统体系结构的不同而变化 gint8、guint8、gint16、 guint16、gint32、guint32、 gint64、guint64 具有已知长度的有符号和无符号整数数据类型。对于64位有符号和无符号整数值,仅在范围有限的机器上支持 gfloat、gdouble 取代c语言提供的float和double gsize 用来保存数据结构和数据类型尺寸的无符号数据类型 gssize 用来保存数据结构和数据类型尺寸的有符号数据类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <glib.h>
gint main(gint argc,gchar *argv[])
{
​ g_print("The length of gboolean is %dn",sizeof(gboolean));
​ g_print("The length of gpointer is %dn",sizeof(gpointer));
​ g_print("The length of gchar is %dn",sizeof(gchar));
​ g_print("The length of guchar is %dn",sizeof(guchar));
​ g_print("The length of gint is %dn",sizeof(gint));
​ g_print("The length of guint is %dn",sizeof(guint));
​ g_print("The length of gshort is %dn",sizeof(gshort));
​ g_print("The length of glong is %dn",sizeof(glong));
​ g_print("The length of gulong is %dn",sizeof(gulong));
​ g_print("The length of gint8 is %dn",sizeof(gint8));
​ g_print("The length of guint8 is %dn",sizeof(guint8));
​ g_print("The length of gint16 is %dn",sizeof(gint16));
​ g_print("The length of guint16 is %dn",sizeof(guint16));
​ g_print("The length of gint32 is %dn",sizeof(gint32));
​ g_print("The length of guint32 is %dn",sizeof(guint32));
​ g_print("The length of gint64 is %dn",sizeof(gint64));
​ g_print("The length of guint64 is %dn",sizeof(guint64));
​ g_print("The length of gfloat is %dn",sizeof(gfloat));
​ g_print("The length of gdouble is %dn",sizeof(gdouble));
​ g_print("The length of gsize is %dn",sizeof(gsize));
​ g_print("The length of gssize is %dn",sizeof(gssize));
return 0;
}