Mike Miller は240 で述べています。初期化されていない値と未定義の動作:
3.9.1 [basic.fundamental] の文言は、unsigned char を使用して初期化されていないデータにアクセスできるように慎重に作成されたため、未定義の動作をせずに memcpy などを C++ で記述できます。
それはどういう意味ですか?なぜ初期化されていないデータにアクセスしたいのでしょうか?
Mike Miller は240 で述べています。初期化されていない値と未定義の動作:
3.9.1 [basic.fundamental] の文言は、unsigned char を使用して初期化されていないデータにアクセスできるように慎重に作成されたため、未定義の動作をせずに memcpy などを C++ で記述できます。
それはどういう意味ですか?なぜ初期化されていないデータにアクセスしたいのでしょうか?
struct
パディングを含むをコピーすると、パディングもコピーされますmemcpy
。通常、そのパディングは初期化されていません。
これは、オブジェクト コンストラクターによって初期化されていないメモリにアクセスできることを意味します (これは C++ 向けの方法です)。unsigned char (または byte) を 使用して生のメモリ チャンクを指すことができます。
オブジェクトは処理する必要がありますが、メモリをありのままに見ることができます。