変数の型


これまでC言語のint型をgint、char型をgcharなどと使って来たが、 ここでGLibリファレンス・マニュアルから確認してみようと思う。

GLibC言語説明最小値最大値
gboolean-TRUEまたはFALSE--
gpointer*ポインタ--
gconstpointerconst *constなポインタ--
gcharchar文字--
gucharunsigned char符号無し文字--
gintint整数G_MININTG_MAXINT
guintunsigned int符号無し整数0G_MAXUINT
gshortshortint型より大きくはないG_MINSHORTG_MAXSHORT
gushortunsigned short符号無しshort0G_MAXUSHORT
glonglongint型より小さくはないG_MINLONGG_MAXLONG
gulongunsigned long符号無しlong0G_MAXULONG
gfloatfloat実数-G_MAXFLOATG_MAXFLOAT
gdoubledoublefloatより高精度な実数-G_MAXDOUBLEG_MAXDOUBLE
gint8-8bit整数G_MININT8G_MAXINT8
guint8-符号無しgint8G_MINUINT8G_MAXUINT8
gint16-16bit整数G_MININT16G_MAXINT16
guint16-符号無しgint16G_MINUINT16G_MAXUINT16
gint32-32bit整数G_MININT32G_MAXINT32
guint32-符号無しgint32G_MINUINT32G_MAXUINT32
gint64-64bit整数G_MININT64G_MAXINT64
guint64-符号無しgint64G_MINUINT64G_MAXUINT64

Visual Basic 6.0ではboolean型が有ったので、gbooleanを使うのは少し懐かしい。 ちなみにC言語ではintで代用していた。


g_strdup


GLibで提供されている関数を少し紹介してみる。


gchar *str;
str = g_strdup("Hello World");
g_print( "%s\n", str );
g_free(str);

文字列を新しく確保した領域にコピーする。


g_strdup_printf



int i;
for( i = 0; i < 10; ++i ){
  gchar *str;
  str = g_strdup_printf( "text:%d", i );
  g_print( "%s\n", str );
  g_free( str );
}

文字列に換算指定子を入れる事ができる。


g_strsplit



const gchar *string = "This is a sample string.";
gchar **str;
int i;
str = g_strsplit( string, " ", 0 );
for( i = 0; str[i] != NULL; ++i ){
  g_print( "%s\n", str[i] );
}
g_strfreev( str );

第1引数:入力文字列
第2引数:区切り文字
第3引数:最大分割数(1より小さい値を指定すると、入力文字列を完全に分割する)
戻り値:生成した文字列の配列(最後はNULLで終わる)


g_new0



#define ARRAY_SIZE 10
int array[ARRAY_SIZE] = { 11, 5, 8, 16, 9, 1, 21, 10, 3, 17 };
gint *g_array;
int i;
g_array = g_new0( gint, ARRAY_SIZE );
for( i = 0; i < ARRAY_SIZE; ++i ){
  g_array[i] = array[i];
  g_print( "%d\n", g_array[i] );
}
g_free( g_array );

第1引数:生成するデータ型
第2引数:データ数
戻り値:確保した領域の先頭アドレス


g_free



メモリ領域を解放する。


g_strfreev



g_strsplitなどで確保された文字列の配列領域を解放する。


前章  | 目次 |  次章



トップ



/