2011-04-02 12 views
0

これはなぜ機能しますか?intはどのようにしてAssetManagerになりますか?

AssetManager* am = (AssetManager*)env->GetIntField(obj, gAssetManagerOffsets.mObject); 

env->env->GetIntField()Int返します。 AssetManagerに変換できるのはなぜですか?このコードはファイルandroid_util_AssetManager.cppからのものです。

+0

C++タグを追加した場合、あなたはそれらの人たちともっと多くの運があると思います:p – Klaus

答えて

2

返されるintは、AssetManagerへのポインタです。 (AssetManager*)は、それがAssetManagerへのポインタであることを示しています。

したがって、intを返します。これは、あたかもAssetManagerへのポインタになります。 AssetManagerは返されません。

こちらはTutorial on Arrays and Pointers in Cです。第5章では、あなたが言及したコードで見ている構文を示します。

+0

あなたの返事ありがとうございました。私はコードをチェックし、 'env-> SetIntField(clazz、gAssetManagerOffsets.mObject、(jint)am);'という行があることがわかりました。だから私はそれを理解する。 – Judy

+0

素晴らしい!私の答えがあなたを助けたら、その左側の緑色のチェックマークをクリックしますか?ありがとう! –

関連する問題