sock_addr_in前学期に受講したシステム プログラミングのクラスでは、基本的なクライアント/サーバーを C で実装する必要がありました。や char バッファー (クライアントとサーバー間でデータをやり取りするために使用したもの)などの構造体を初期化するとき、教授は初期化せbzeroずに使用するように指示されmemsetました。彼は理由を説明していませんが、これに正当な理由があるかどうか知りたいですか?
ここに表示されます: http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdownはbzero、メモリをゼロにするだけなので、より効率的です。追加のチェックを行う必要memsetがあります。memsetそれでも、メモリをゼロにするために絶対に使用しない理由のようには思えません。
bzero非推奨と見なされ、さらに標準の C 関数ではありません。マニュアルによると、この理由からmemset優先されます。bzeroでは、なぜbzeroover を使用したいのでしょうmemsetか? 効率の向上のためだけですか、それともそれ以上のことですか? 同様に、それを新しいプログラムの事実上の推奨オプションにするmemset以上の利点は何ですか?bzero