問題タブ [unsafe-pointers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - DSP ルーチンを C/C++ で書き直す必要がありますか? それとも、C# の安全でないポインターに慣れていますか?
現在、多くのデジタル信号処理を行う C# アプリケーションを作成しています。これには、微調整された小規模なメモリ xfer 操作が多数含まれます。安全でないポインターを使用してこれらのルーチンを作成しましたが、最初に考えたよりもはるかに優れたパフォーマンスを発揮するようです。ただし、アプリをできるだけ高速にしたいと考えています。
これらのルーチンを C または C++ で書き直すことでパフォーマンス上の利点が得られるでしょうか?それとも、安全でないポインターに固執する必要がありますか? C/C++ と比較して、安全でないポインターがパフォーマンスの観点からテーブルにもたらすものを知りたいです。
編集: これらのルーチン内で特別なことは何もしていません。通常の DSP のことだけです。多くの乗算、加算、ビット シフトなどを使用して、ある配列から別の配列にキャッシュ フレンドリーなデータを転送します。C/C++ ルーチンは、対応する C# ルーチンとほぼ同じ (同一ではないにしても) に見えると思います。
編集:すべての賢い答えに感謝します。私が学んだことは、ある種の SSE 最適化が行われない限り、直接移植するだけではパフォーマンスが大幅に向上しないということです。最新のすべての C/C++ コンパイラがそれを利用できると仮定すると、試してみるのが楽しみです。誰かが結果に興味がある場合は、私に知らせてください。どこかに投稿します。(ただし、しばらく時間がかかる場合があります)。
c# - 1つのステートメントで逆参照とポインタを進めますか?
次のようにバイト配列から読み取っています。
間違っている場合は訂正してください。ただし、++ は * よりも優先されるため、同じステートメントで *i と i++ を組み合わせることができますか? (例: *i++)
(これは技術的に安全でない C# であり、C++ ではありません。p はバイトです*)
c# - C#でポインターからバッファーへの文字列を読み取る方法
この C++ dll 呼び出しから C# のエラー文字列を読み取るにはどうすればよいですか?
ありがとう!
c# - 「安全でないコードを許可する」設定に準拠した C# アプリケーションをネットワーク上の場所から実行する
私の C# アプリケーションはポインターを使用しているため、「安全でないコードを許可する」設定を使用してコンパイルされています。このようなアプリケーションをネットワーク上の場所から実行することは非常に困難であるか、またはまったく不可能であることを知っています (または実行する方法はありますか??)。私が知りたいのは、エラーを処理する方法があるかどうかですこれは、ネットワークの場所からこのアプリケーションを実行しようとしているときに発生し、アプリケーションを正常に失敗させます。次のエラーが表示されます...「アプリケーションに問題が発生したため、閉じる必要があります」。例外情報には次のコードが含まれています: 0xe0434f4d
c++ - クラスのグローバルオブジェクトを宣言した後、システムがクラッシュする
私はC++に非常に慣れていません。次の手順を実行すると、システムがクラッシュします(コンパイルエラーではありません)。
クラスのグローバルポインタを宣言しています。
このクラスでは、XMLファイルからタグを読み取っています。このポインタを使用して値を取得すると、システムがクラッシュします。ベリフォン端末のコーディングをしています。
getreferencesetting()は、クラスEftBarclaysGiftConfigのメンバー関数です。
この場合、ポインタの動作について混乱しています。私は何か間違ったことをしていることを知っていますが、それを修正することができませんでした。
クラスの1つのオブジェクトをローカルで宣言すると、値が適切に取得されます。
しかし、このオブジェクトをグローバルとして宣言すると、システムもクラッシュします。
コード内の別の場所で値をフェッチする必要があるため、グローバルなものを使用する必要がありました。
この問題を修正するにはどうすればよいですか?
c# - クラスに整数の参照を割り当てます
クラスの初期化時に参照として整数を渡し、参照を安全にすることは可能ですか?
ポインターを使用できますが、安全でないコンテキストが必要です。
c++ - 初期化されていないポインタを持つクラスには未定義の動作がありますか?
これは有効なクラスですか (はい、コンパイルされます)? 逆参照する前に ptr2Int に値を割り当てた場合、クラスは期待どおりに動作することが保証されていますか?
c# - リストの変換方法C# の Byte[] へ
Double[] src から Byte[] dst への変換は、固定ポインターによって C# で効率的に行うことができます。
List src に対して同じことを行うにはどうすればよいですか? つまり、 List に含まれる配列 Double[] への固定ポインタを取得するにはどうすればよいですか? ありがとう。