
void *memset( void *dest, int c, size_t count );
1文字の扱いはエラーを受け取るために char ではなく
int が使われていることが多いようです。
一般的には1文字の扱いは int であるという習慣が
memset に int が適用されている理由である
と考えられますが、その他に memset に int が使われて
いる大きなメリットは何かあるのでしょうか?
char str1[] = "abcdefghi";
memset( str1, (int)0x41424344, 3 );
//DDDdefghi
int i1[] = { 1, 2, 3, 4, 5 };
memset( i1, (int)0x10204080, 3 );
//0 800000 8000 80, 808080 2 3
No.2ベストアンサー
- 回答日時:
何かへの便宜というよりは、昔の習慣そのままだと思います。
ANSI-C以前では、関数側の引数定義を行っても、実際に引数を渡す際には
shortやcharはintに自動変換して渡していた(スタックに積んでいた)と思います。
つまり、charを定義していても
渡す側の変数char->intにしてスタック->関数側の変数になります。
そのため、shortやcharを引数にする関数は「無駄?」なのかintで
定義しているのかと思います。
同様にfloatもdoubleに変換されていたはずですから、floatを引数にする関数も無かったかと。
ちょっと、理屈としては弱いですが、こんな感じかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
C言語 共用体について コマンド...
-
switch文で文字を比較すること...
-
CStringをwchar_tに変換したい
-
文字列から空白を取り除きたい...
-
C言語のfor文です。 繰り返しの...
-
const char** p;のとき、free(p...
-
間接参照のレベルが異なっています
-
c言語の問題の説明、各所ごとに
-
getchar()を int でとる理由...
-
atoi( ) の反対をやりたい
-
-'0'の意味について
-
コマンドラインに入力されてい...
-
ソケット通信で大容量のメール...
-
YUV⇔RGB変換がうまくいきません。
-
ワイルドカードを用いた文字列検索
-
間接操作のレベルとは
-
C言語の入力した文字を反転させ...
-
ランダムな英文字の文字列作成
-
PostgresSQLから得たデータが画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
文字列から空白を取り除きたい...
-
間接参照のレベルが異なっています
-
C言語のfor文です。 繰り返しの...
-
CStringをwchar_tに変換したい
-
テキストデータをそのままバイ...
-
charからLPTSTRへの変換方法
-
atoi( ) の反対をやりたい
-
charでの計算?
-
配列をnビットシフトする
-
c++ 文字列を入力して、一文字...
-
'const char *' 型は 'char *' ...
-
c言語でユーザ関数を利用して入...
-
干支のプログラム
-
switch文で文字を比較すること...
-
char型からのバイト数取得
-
ネットワークにつながっている...
-
getchar()を int でとる理由...
-
間接操作のレベルとは
-
str系関数を使わずに二つの文字...
おすすめ情報