ある日、昔ながらの C 言語でビデオ ゲームを書き始めることにしました。
それはとても楽しく、3 か月後 (仕事から少し離れていることもあります)、物理エンジンが必要であることに気付きました。
Bullet 物理エンジンを使用することにしました。これは、私が必要としているものの中で最も優れているものの 1 つと思われるためです。
その後、Bullet には実際には C API がなく、完全な C++ API しかないことがわかりました。その C API は維持されていません。
のろいの一日の後、私は自分のプロジェクトを C++ に「変換」しました。これは、すべてのヒープ割り当てを型キャストし、malloc と free の代わりに new と delete を使用し、「extern "C" でいくつかの定義をまとめた」という大胆な声明です。 { ... }'.
そうすれば私を撃つ人もいるでしょうが、この物理エンジンのような C++ API しか持たないパフォーマンス タスクを C で使用する方法は他にありませんでした。
だから今、私はg ++でコンパイルしていますが、まだほとんど「C」コードを書いています。コードが純粋ではなくなったので、少し満足できなくなりました。
C++ を使用すると奇妙なエラー メッセージが表示されますが、g++ パーサーが嫌いな言語については特に何も感じていません。オブジェクト同士をうまく跳ね返すことができるようになったという事実は別として、私のペット プロジェクトの小ささと純粋さの一部は今では見捨てられています。
私は正しいことをしたかどうか疑問に思っています。「ほとんどの」C コードに C++ コンパイラを使用することを心配せずに続行する必要がありますか? パフォーマンスの低下や過度の保守作業を行わずに、C でこの API を使用する他の方法はありますか?