実行可能かどうかわかりませんが、CレベルのコードをJavaコードに戻すために関数ポインタをlongにキャストする必要があります。longへの関数ポインタのキャスト
0
A
答えて
2
ポインタの値は整数であり、正確に何をしているのかを知り、ポインタの値を格納するのに十分な記憶域を割り当てるだけで済みます。 (32ビットOSではポインタが32ビット記憶域を占有し、64ビットOSではポインタが64ビット記憶域を占有する)。
A C例:
#include <stdio.h>
void fun()
{
printf("fun\n");
return;
}
typedef void (*fun_type)();
int main()
{
long long int a = (long long int)fun;
fun_type func_point = (fun_type)a;
func_point();
return 0;
}
+0
'long long int 'をポインタにキャストする、またはその逆にキャストすると、特定の32ビットコンパイラで警告が発行されます。正しい方法は、それらを['intptr_t'](http://stackoverflow.com/a/6543455/3448419)にキャストすることです。 – apangin
関連する問題
- 1. long longへのポインタの明示的キャスト
- 2. long long intへのポインタへのアクセス
- 3. longを関数ポインタにキャストしますか?
- 4. 関数ポインタの型キャスト
- 5. C++関数ポインタのキャスト
- 6. 配列へのポインタへのポインタのキャスト
- 7. 関数の引数で空ポインタとキャスト
- 8. キャストするポインタへのローカル変数
- 9. long型への8ビットポインタのキャスト
- 10. intからlong intへの型キャスト
- 11. 関数への整数ポインタ
- 12. C++型キャスト:voidポインタからクラスポインタへのポインタをキャスト
- 13. C関数ポインタへのポインタの返信
- 14. C++のメンバ関数への関数ポインタ
- 15. glutDisplayFuncの関数へのポインタ
- 16. 異なるポインタ型の引数ポインタとしてのキャスト関数ポインタ
- 17. ポインタと関数ポインタ間の型キャスト時の警告
- 18. boost :: geometry関数への関数ポインタ
- 19. メンバ関数関数オブジェクトへのポインタ
- 20. テンプレート関数への関数ポインタ
- 21. CURLOPT_WRITEFUNCTIONメンバー関数へのポインタ
- 22. 関数戻りへのポインタ
- 23. クラスメンバーへのC++関数ポインタ
- 24. 関数がテンプレートクラスメソッドへのポインタ
- 25. 関数へのポインタC++
- 26. メンバ関数へのポインタ
- 27. 関数へのポインタとしてのメンバ関数へのポインタの受け渡し
- 28. 同じクラスの別のものに1つのポインタ関数へのキャスト
- 29. Cで関数ポインタを返す関数へのポインタの構文
- 30. intをunsigned long longにキャスト
あなたはあなたのコードを投稿してもらえますか? –
私は長い間、ポインタを機能させることはできませんでした。 – Bionix1441
未定義の動作:_Aポインタが、参照された型(6.3.2.3)と互換性のない型を呼び出すために使用されました_ –