C でオブジェクトをシリアル化する方法 : 包括的なガイド
データ交換の領域では、オブジェクトをシリアル化する機能が重要です。シリアル化によりオブジェクトがバイト配列に変換され、ネットワーク上での効率的な送信やファイルへの保存が可能になります。 C は多用途言語であり、オブジェクトのシリアル化のためのさまざまなソリューションを提供します。
人気のあるアプローチの 1 つは、Boost Serialization Library です。 Boost は、単純なオブジェクトと複雑なオブジェクトの両方をシリアル化するための包括的なツール スイートを提供します。 Boost を使用してオブジェクトをシリアル化するには、次の手順に従います。
#include <boost/archive/binary_oarchive.hpp> #include <fstream> std::ofstream ofs("filename.dat", std::ios::binary); boost::archive::binary_oarchive oa(ofs); oa << myObject;
#include <boost/archive/binary_iarchive.hpp> std::ifstream ifs("filename.dat", std::ios::binary); boost::archive::binary_iarchive ia(ifs); ia >> myDeserializedObject;
もう 1 つのオプションは、最新の C フレームワークである Cereal ライブラリを使用することです。迅速かつ効率的なデータのシリアル化。 Cereal は C テンプレートとメタプログラミングを活用して、バイナリと JSON の両方のシリアル化機能を提供します。 Cereal を使用するには、適切なヘッダー ファイルをインクルードし、クラスのシリアル化メソッドを定義するだけです。
#include <cereal/archives/binary.hpp> #include <cereal/archives/json.hpp> class MyObject { public: template <class Archive> void serialize(Archive &ar) { ar &m_value1; ar &m_value2; } private: int m_value1; std::string m_value2; };
Cereal では、シリアル化は簡単です。
// Binary serialization { std::ofstream os("filename.bin", std::ios::binary); cereal::BinaryOutputArchive archive(os); archive(myObject); } // JSON serialization { std::ofstream os("filename.json"); cereal::JSONOutputArchive archive(os); archive(myObject); }
要約すると、C は複数の機能を提供します。オブジェクトのシリアル化のための強力なライブラリ。 Boost Serialization Library と Cereal は 2 つの優れた選択肢であり、それぞれに独自の強みがあります。単純なオブジェクトを扱うか複雑なオブジェクトを扱うかに関係なく、これらのライブラリを使用すると、開発者はオブジェクトを転送および保存用のバイト配列に効率的に変換できます。
以上がBoost と Cereal を使用して C でオブジェクトを効果的にシリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。