2017-10-01 19 views
0

guintを返すAPI関数(https://developer.gnome.org/glib/stable/glib-Hash-Tables.html#g-hash-table-size)を使用するCコードベースで作業しています。これをintとして下流に渡す必要がありました。これを行う方法があるかどうか疑問に思っていますか?Guint型(例えばguint)から標準Cデータ型(intなど)への型変換

私はドキュメントとGoogleを検索しましたが、空になりました。

+0

[文字の配列をconst gcharに変換する\ *](https://stackoverflow.com/questions/2800310/converting-an-array-of-characters-to-a-const-gchar)の可能な複製 – ptomato

答えて

1

これらのtypedefの単なる存在が私を困惑させます。 glib/gtypes.hを確認してください:

typedef char gchar; 
typedef short gshort; 
typedef long glong; 
typedef int gint; 
typedef gint gboolean; 

typedef unsigned char guchar; 
typedef unsigned short gushort; 
typedef unsigned long gulong; 
typedef unsigned int guint; 

だから、何の変換がunsigned intguintの間で必要とされていない、彼らは同じタイプです。

unsigned intintの間の変換に関する通常の警告が適用されます。

+1

https://stackoverflow.com/questions/1819561/why-does-glib-redefine-types?rq=1#comment1709760_1819582は、なぜこれが – ptomato

+1

https:// stackoverflowであるかを見てきたと考えられます.com/questions/1819561/why-does-glib-redefine-types?rq = 1#comment1709760_1819582は推測ではありませんが、それは正しい事実です。 –

+1

他のSOの記事は 'gint32'とそれに類するものの存在の説明かもしれません。しかし、私がgintと言うことができるのは、すべてのプラットフォームでプラットフォーム定義のintです。同様に、特定のサイズのない他のタイプ。だから彼らはどんな目的を果たすのですか? 'gint'、' gchar'などの存在は、常に私を痛感しました。 –

関連する問題