[解決済み] なぜmemsetではなくbzeroを使用するのですか?
質問
前学期に受講したシステム・プログラミングの授業で、基本的なクライアント/サーバーをC言語で実装することになったのですが、構造体を初期化する際に
sock_addr_in
やcharバッファ(クライアントとサーバーの間でデータをやり取りするために使用する)を使用するように教授から指示されました。
bzero
であり
memset
を使って初期化することができます。 その理由は説明されませんでしたが、正当な理由があるのでしょうか?
ここに書いてありますね。
http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdown
その
bzero
はメモリをゼロにするだけなので、より効率的です。
memset
を行う可能性があります。 それでも、必ずしも
memset
を使用することで、メモリをゼロにすることができます。
bzero
は非推奨とされており、さらにCの標準的な関数ではありません。マニュアルによると
memset
よりも優先されます。
bzero
という理由からです。 では、なぜまだ
bzero
オーバー
memset
? 単に効率が良いだけなのか、それともそれ以上のものがあるのか? 同様に
memset
オーバー
bzero
というのは、新しいプログラムでは事実上好ましい選択肢になっているのでしょうか?
解決方法は?
を優先する理由が見当たらない。
bzero
オーバー
memset
.
memset
は標準的なCの関数であるのに対し
bzero
はCの標準関数になったことはない。その理由はおそらく、同じ機能を
memset
関数を使用します。
さて、効率についてですが、コンパイラは
gcc
のビルトイン実装を使用します。
memset
を指定すると、特定の実装に切り替わります。
0
が検出されます。同じく
glibc
ビルトインが無効の場合。
関連
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】デバッガgdbの使用時に不明な終了シグナルが発生する。
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み】C言語で多重定義を防ぐには?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
-
[解決済み] マクロで無意味なdo-while文やif-else文を使っているのはなぜですか?
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み】malloc+memsetはcallocより遅いのはなぜ?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】valgrind - サイズ8のブロックが割り当てられた後、アドレス ---- が0バイトになる。
-
[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】式は変更可能なL値でなければならない
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み】LinuxのI_PUSHに相当するもの
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み】Linuxソケットのwrite()でBad File Descriptorが発生するC
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?