[解決済み] bzero() & bcopy() 対 memset() & memcpy()
2022-02-09 15:26:14
質問
非標準の
bzero()
と
bcopy()
ではなく
memset()
と
memcpy()
Linux環境では?Linuxのコンパイラに適しているという話はよく聞きますが、標準関数と比較しての利点は見たことがありません。
標準のものよりも最適化されているのか、それとも何か好まれる動作の特殊性があるのでしょうか?
どのように解決するのですか?
一方
bzero
と
bcopy
関数は ISO C (非標準と言うからには実際の標準のことでしょう) ではないのです。
だった
はPOSIX標準のものであり、ISO
と
POSIXです。
これらの関数は POSIX.1-2001 で非推奨となり、現在も使用されています。
削除
を尊重し、POSIX.1-2008では
memset
,
memcpy
と
memmove
. だから、可能な限りCの標準的な関数を使った方がいい。
がある場合は ロット を使用しているコードがあり、それをすべて変更したくない場合(おそらくは すべき を使用すると、以下のように簡単に代用することができます。
// void bzero(void *s, size_t n);
#define bzero(s, n) memset((s), 0, (n))
// void bcopy(const void *s1, void *s2, size_t n);
#define bcopy(s1, s2, n) memmove((s2), (s1), (n))
関連
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】警告:互換性のないポインタ型からの代入
-
[解決済み】ISO C90では、C言語での宣言とコードの混在が禁止されています。
-
[解決済み】 switch case: error: case label does not reduce to an integer constant
-
[解決済み】C言語で入力が整数型かどうかチェックする
-
[解決済み】0LLや0x0ULの意味は何ですか?
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。
-
[解決済み] なぜmemsetではなくbzeroを使用するのですか?
-
[解決済み】malloc+memsetはcallocより遅いのはなぜ?
-
[解決済み] memcpy()とmemmove()の比較
最新
-
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バイトになる。
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み】警告。この関数ではXが初期化されていない状態で使用される可能性があります。
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み】 switch case: error: case label does not reduce to an integer constant
-
[解決済み】スレッド1:EXC_BAD_ACCESS(コード=1、アドレス=0x0)標準Cメモリ問題
-
[解決済み] [Solved] .Cファイルをコンパイルしています。アーキテクチャ x86_64 の未定義シンボル
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素