Glib學習筆記 1

2021-08-25 03:14:11 字數 2296 閱讀 9660

glib學習筆記

一glib

筆記1

這一部分主要是glib的基礎

注意,自己的程式裡邊都要包含

下面這些巨集:用於版本資訊,主要用於configure時候的版本檢測,一般應用程式不太用這個

#define

glib_major_version

#define glib_minor_version

#define

glib_micro_version

#define

glib_check_version

(major,minor,micro)

最後乙個巨集,返回布林值,應用程式可用他判斷是否為正確的版本。 [

這一小節沒什麼東西]

glib提供了一套可移植的原始資料型別,例如gint等,知道這個就行了,以後寫glib的程式,盡量用它定義的資料型別

有幾個值得注意: l

gboolean:返回true或false l

代表返回void*指標的--gpointer,以及乙個const void* gconstpointer l

返回可表示範圍的,例如g_minshort,g_maxshort等 l

提供給print和scan函式的巨集,如g_gint16_modifier/g_gint16_format等 l

64位整數,有兩個紅,g_gint64_constant,g_guint64_constant。 l

sizeof(struct)返回gsize型別,goffsset=gint64

[沒什麼難度這一節]

上一節也提到過,例如g_maxint,g_minint等

#define g_struct_member(member_type, struct_p, struct_offset)

member_type:成員型別

strutc_p:指向該結構的指標

struct_offset:偏移

估計裡邊的實現是 (member_type*)((gchar*)struct_p + struct_offset)

類似的還有:

#define g_struct_member_p(struct_p, struct_offset)

沒有前面的強制型別轉換了

#define g_struct_offset(struct_type, member)

返回member在結構中的偏移位元組。具體怎麼實現有點忘記了,但是核心**中常見這樣的內容。

#define gint_to_pointer (i)

#define gpointer_to_int (p)

#define guint_to_pointer (u)

#define gpointer_to_uint (p)

#define gsize_to_pointer (s)

#define gpointer_to_size (p)

目的其實很簡單,就是在指標型別中儲存整數型別。我們倒是經常在windows下用dword儲存指標型別的資料。

轉換位元組序的一些輔助巨集和函式,例如g_htons,g_ntohs等。

l本機是怎樣的位元組序?檢視巨集定義g_byte_order

沒什麼意思

定義一些數值常量。

g_pi,定義pi常量。

沒什麼意思

l定義乙個多行的巨集,g_stmt_start和g_stmt_end,其實就是do/while的組合

lg_begin_decls,g_end_decls,標頭檔案中用的開頭和結尾

有些有用,到時候再查就知道了。

很多啊

gint g_atomic_int_get ();

void g_atomic_int_set ();

void g_atomic_int_add ();

gint g_atomic_int_exchange_and_add ();

gboolean g_atomic_int_compare_and_exchange ();

gpointer g_atomic_pointer_get ();

void g_atomic_pointer_set ();

gboolean g_atomic_pointer_compare_and_exchange

();void g_atomic_int_inc (gint *atomic);

gboolean g_atomic_int_dec_and_test (gint *atomic);

manual做的也真是不到位,竟然連引數都沒有寫進來。

看這些東西,最好裝乙個source insight。直接看原始碼。

GLib學習筆記 3

三 工具 這部分內容主要是提供了一些公共的api或者是類,幫助完成各種不同的功能。g str 等系列函式,方便完成字串操作,有點像c c 裡邊的函式。這個和cstring還不是同一類東西。cstring是字串類,可能更加方便。包括utf8到unicode等轉換的函式。值得注意的是檔名的字符集轉換函式...

glib學習筆記序 如何開始

glib是gtk 的乙個組成部分,而由於其類似c 的封裝,讓linux c程式設計師的程式設計變得非常簡單快捷 glib有很多的工具,包括timer hashtable等 glib有很多的結構體,包括gkeyfile,giochannel,goptionentry等 這些工具和結構體構成了程式的主體...

glib學習記錄

glib,是linux下的常用的c語言函式庫,具有良好的移植性。也可在windows下使用,所以可用來跨平台。若程式中需要使用glib,則需要包含glib.h標頭檔案。看一下glib的一些常用型別和巨集。型別 整數型別gint8,gunit8,gint16,guint16,gint32,guint3...