実行可能かどうかわかりませんが、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を関数ポインタにキャストしますか?
- 3. C++関数ポインタのキャスト
- 4. 配列へのポインタへのポインタのキャスト
- 5. 関数の引数で空ポインタとキャスト
- 6. intからlong intへの型キャスト
- 7. 関数への整数ポインタ
- 8. C++型キャスト:voidポインタからクラスポインタへのポインタをキャスト
- 9. C関数ポインタへのポインタの返信
- 10. C++のメンバ関数への関数ポインタ
- 11. glutDisplayFuncの関数へのポインタ
- 12. 異なるポインタ型の引数ポインタとしてのキャスト関数ポインタ
- 13. ポインタと関数ポインタ間の型キャスト時の警告
- 14. テンプレート関数への関数ポインタ
- 15. メンバ関数関数オブジェクトへのポインタ
- 16. boost :: geometry関数への関数ポインタ
- 17. 関数戻りへのポインタ
- 18. メンバ関数へのポインタ
- 19. CURLOPT_WRITEFUNCTIONメンバー関数へのポインタ
- 20. 関数へのポインタC++
- 21. 関数がテンプレートクラスメソッドへのポインタ
- 22. 関数へのポインタとしてのメンバ関数へのポインタの受け渡し
- 23. 同じクラスの別のものに1つのポインタ関数へのキャスト
- 24. Cで関数ポインタを返す関数へのポインタの構文
- 25. intをunsigned long longにキャスト
- 26. 関数へのポインタを返す関数へのポインタを定義する方法
- 27. C++:関数へのポインタをキャストするのは安全ですか?
- 28. void *へのstd :: bind関数のポインタをキャストして返します
- 29. 構造体へのvoidポインタのキャスト
- 30. 文字へのポインタへのポインタを関数に渡す
あなたはあなたのコードを投稿してもらえますか? –
私は長い間、ポインタを機能させることはできませんでした。 – Bionix1441
未定義の動作:_Aポインタが、参照された型(6.3.2.3)と互換性のない型を呼び出すために使用されました_ –