2

C バックエンドを持つ Webkit ベースのソフトウェア フレームワークを作成しています。C レイヤーから最上部の JavaScript レイヤーに参照を渡したいと考えています。残念ながら、C ポインターは最大 64 ビットである可能性がありますが、javascript は最大 56 ビットまでしかサポートしません。

この javascript 制限をどのように克服できますか?

現在のアプローチでは、64 ビット ポインターと 32 ビット整数の間に C でハッシュマップを作成しています。後者は Javascript レイヤーに渡されます。

4

2 に答える 2

1

C 側でポインターを単純に double に変換し (この関連する質問を参照)、JavaScript のみで double と通信することができます。可能な値が両側で同じであるIEEE754倍精度数のみを処理するため、この方法では損失はありません。

しかし、経験上、プログラム間でポインターを交換することは通常は悪い考えであることが示されています (明らかに、最初は強い結合が導入されます)。そのため、ハッシュマップで行う何らかの ID を使用します

于 2013-07-17T11:34:17.697 に答える