!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 154
https://mevius.5ch.net/test/read.cgi/tech/1578997950/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 155
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 76ba-P5bm)
2020/05/10(日) 23:20:27.99ID:Z3WQBr9X064デフォルトの名無しさん (ワッチョイ 3302-9WPr)
2020/05/21(木) 12:21:49.65ID:J954h+Be065デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/21(木) 16:13:44.63ID:K4ggzWEW0 関数のシグネチャはスタティックリンクすればバイナリには残らない
ダイナミックリンクにするとエクスポートテーブルに載ったりするけどね
ダイナミックリンクにするとエクスポートテーブルに載ったりするけどね
66デフォルトの名無しさん (ワッチョイ 8b01-CNUQ)
2020/05/21(木) 17:03:55.36ID:vAg7pclj0 セキュリティ周りは英語みるしかないね
日本人は忌避感が強すぎる
teratailとかでたまに質問してる人がいるけど
「悪用するひとがいるから回答できない」みたいな発言ばっかり
セキュリティ後進国ニッポン万歳
日本人は忌避感が強すぎる
teratailとかでたまに質問してる人がいるけど
「悪用するひとがいるから回答できない」みたいな発言ばっかり
セキュリティ後進国ニッポン万歳
67デフォルトの名無しさん (ワッチョイ 4ed2-crVl)
2020/05/21(木) 17:27:45.11ID:VFiGAn+W0 飲食店の場所取りに自分のカバンやスマホ置く国日本。
敷地の出入り口封鎖にプラスチックチェーン使う国日本。
敷地の出入り口封鎖にプラスチックチェーン使う国日本。
68デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 03:16:22.12ID:yrCNqXls0 ポインタ変数のバイト数って32ビット環境が4バイトで64ビット環境が8バイトですか?
69デフォルトの名無しさん (ワッチョイ 7af8-Rkb+)
2020/05/22(金) 07:18:42.71ID:roLyvqPu0 >>65
夢で見たの?
夢で見たの?
70デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 07:48:33.62ID:QdrkGYuD071デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 08:25:04.59ID:yrCNqXls0 >>70
コンパイラによるんですか
コンパイラによるんですか
72デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 08:32:57.86ID:QdrkGYuD073デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 08:50:54.09ID:yrCNqXls074デフォルトの名無しさん (ワッチョイ 9a02-crVl)
2020/05/22(金) 09:09:56.75ID:VBq+8Qqi0 ただし実際の実装では>>68のようになってることが多い。
まるで大井川です。
まるで大井川です。
75デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/22(金) 09:40:58.83ID:+zt+hei00 10回に1回くらいsegmentation faultが起こる原因って何だか分かりますか?
76デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 10:12:13.45ID:QdrkGYuD0 初期化し忘れによる不定
77デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 10:15:38.92ID:QdrkGYuD0 再帰が深すぎ
境界値でのテストをしていない
境界値でのテストをしていない
78デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/22(金) 10:15:53.42ID:+zt+hei00 >>76
宣言した、配列や変数に全部初期値を入れた方が良いということでしょうか?
宣言した、配列や変数に全部初期値を入れた方が良いということでしょうか?
79デフォルトの名無しさん (オイコラミネオ MMe3-rpJt)
2020/05/22(金) 10:44:52.26ID:yrPx0C2WM >>78
配列や変数に値を入れるより先に値を読むような処理があるなら、その値は不定になるよ。
不定じゃ困るなら初期化しなければならないし、処理の流れ上読むより先に必ず値を入れることになるなら必ずしも初期化は要らない。
配列や変数に値を入れるより先に値を読むような処理があるなら、その値は不定になるよ。
不定じゃ困るなら初期化しなければならないし、処理の流れ上読むより先に必ず値を入れることになるなら必ずしも初期化は要らない。
80デフォルトの名無しさん (ワッチョイ 275f-tqmx)
2020/05/22(金) 10:46:08.14ID:cP0YviQU0 無効な値とかを決めて、全部初期値としてセットしておいたほうがバグは見つけやすくなるかと
81デフォルトの名無しさん (ワッチョイ 1bf9-f9J/)
2020/05/22(金) 10:46:44.80ID:RnFaArUl0 全部初期化した方がいいといえばいい、というか…
0とかのデフォ値でいいならそうだよ、というか…
変数に代入し忘れのバグって、変数に代入すべき所でしてないのが原因なワケで
それを直さないとバグったままだよ
0とかのデフォ値でいいならそうだよ、というか…
変数に代入し忘れのバグって、変数に代入すべき所でしてないのが原因なワケで
それを直さないとバグったままだよ
82デフォルトの名無しさん (ワッチョイ 6301-r9h8)
2020/05/22(金) 20:37:04.55ID:bFQm7Q/P0 フフフフフフフフフフフフフフフフ
83デフォルトの名無しさん (スフッ Sdba-K7uz)
2020/05/22(金) 21:35:43.84ID:zmnGp56md Cでディクショナリ型のデータ構造が使いたいんだけど何かいい擬似的な仕組みとかないかな
84デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2020/05/22(金) 21:37:08.62ID:Czx4JK5B0 深く考えずそこいらのハッシュのコードをコピペして終わり
85デフォルトの名無しさん (ワッチョイ 7af8-bx/N)
2020/05/22(金) 22:21:53.66ID:roLyvqPu0 配列に入れてqsortしてbsearch
86デフォルトの名無しさん (ワッチョイ 6301-r9h8)
2020/05/22(金) 22:38:56.16ID:bFQm7Q/P0 GNU汚染されても構わないなら
87デフォルトの名無しさん (ワッチョイ 7af8-bx/N)
2020/05/22(金) 23:06:54.16ID:roLyvqPu0 >>86
意味不明
意味不明
88デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/23(土) 04:45:14.96ID:d49u2Ywha89デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/23(土) 04:46:10.15ID:d49u2Ywha >>87
ロリコンGNU汚染は深刻
ロリコンGNU汚染は深刻
90デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:04:52.92ID:qSr4WIyQa Cの初心者質問スレはここでいいのかな?
91デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:09:46.32ID:qSr4WIyQa 【問題】最大値と最小値を順番に表示するプログラムを作成したい。以下のプログラムに適切なコードを追加して完成させよ。
【プログラム】
int main(void)
{
double a, b, c, max, min;
scanf("%lf", &a);
scanf("%lf", &b);
scanf("%lf", &c);
/* ここにコードを追加 */
if(max<b) {
max = b;
}
if(max<c) {
max = c;
}
if(min>b) {
min = b;
}
if(min>c) {
min = c;
}
printf("%f\n%f\n", max, min);
return 0;
}
【プログラム】
int main(void)
{
double a, b, c, max, min;
scanf("%lf", &a);
scanf("%lf", &b);
scanf("%lf", &c);
/* ここにコードを追加 */
if(max<b) {
max = b;
}
if(max<c) {
max = c;
}
if(min>b) {
min = b;
}
if(min>c) {
min = c;
}
printf("%f\n%f\n", max, min);
return 0;
}
92デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:10:27.38ID:qSr4WIyQa 【僕の解答】
if(max<a) {
max = a;
}
if(min>a) {
min = a;
}
を追加したのですが、上手くいきません。
どこが間違っているのでしょうか??
if(max<a) {
max = a;
}
if(min>a) {
min = a;
}
を追加したのですが、上手くいきません。
どこが間違っているのでしょうか??
93デフォルトの名無しさん (ワッチョイ 2b61-1BKT)
2020/05/27(水) 15:28:26.21ID:7WWgMS5U0 初期化されてないmax,minと比較をしたら結果は不確定になってしまうでしょ
この場合比較自体が不要、代入するだけでいい
この場合比較自体が不要、代入するだけでいい
94デフォルトの名無しさん (アウアウウー Sac5-TOJA)
2020/05/27(水) 15:30:27.76ID:l0VRR152a 宿題か・・・
宿題は宿題用のスレがあるので次回からはそちらへ。
宿題は宿題用のスレがあるので次回からはそちらへ。
95デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:42:06.32ID:qSr4WIyQa >>94
そのスレってどこにありますか?
そのスレってどこにありますか?
96デフォルトの名無しさん (ワッチョイ 2b63-eh4p)
2020/05/27(水) 15:51:45.80ID:YJvjJLLF0 >>95
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456911928/
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456647534/
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456911928/
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1456647534/
97デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/27(水) 16:09:07.31ID:9+VJvnQZ0 170代目宿題スレッドって2つ生きてるんだ。片方しか見てなかったわ。
両方ともさほど繁盛してないみたいだけど。
最大値、最小値を入力されたデータの一つで仮に設定する手法か。
Cに限らない話だね。アルゴリズムって言うほど大袈裟でもないけど。
両方ともさほど繁盛してないみたいだけど。
最大値、最小値を入力されたデータの一つで仮に設定する手法か。
Cに限らない話だね。アルゴリズムって言うほど大袈裟でもないけど。
>>97
5 年ほど前は大繁盛だったんですけど、最近は授業でも C は取り上げられなくなったんですかね?
5 年ほど前は大繁盛だったんですけど、最近は授業でも C は取り上げられなくなったんですかね?
99デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/05/27(水) 23:36:23.85ID:3VgZbS/t0 >>98
QZのせいで糞スレ化したからだろう
QZのせいで糞スレ化したからだろう
100デフォルトの名無しさん (ワッチョイ c163-moxv)
2020/05/27(水) 23:44:18.88ID:4XHC6/z30 退学になったストーカー、今どうしているんだろう
101デフォルトの名無しさん (ワッチョイ 2b2c-HO12)
2020/05/28(木) 02:29:00.68ID:MEC8WK3T0 Ruby では、
a = ARGV[ 0 ].to_f; b = ARGV[ 1 ].to_f; c = ARGV[ 2 ].to_f
# ここにコードを追加
max = a; min = a
max = b if max < b
max = c if max < c
min = b if min > b
min = c if min > c
p min, max
a = ARGV[ 0 ].to_f; b = ARGV[ 1 ].to_f; c = ARGV[ 2 ].to_f
# ここにコードを追加
max = a; min = a
max = b if max < b
max = c if max < c
min = b if min > b
min = c if min > c
p min, max
102デフォルトの名無しさん (アウアウエー Sa23-1zQY)
2020/05/28(木) 11:35:50.55ID:vYrFHFhya >>99
+1
+1
103デフォルトの名無しさん (ワッチョイ 51b7-hNtB)
2020/05/28(木) 14:39:45.45ID:6YeNiPZ80 自分ならmax,minに無条件に値を入れないで
if (a < b)
{
min = a;
max = b;
}else{
min = b;
max = a;
}
if (min > c) min = c;
if (max < c) max = c;
にする。
if (a < b)
{
min = a;
max = b;
}else{
min = b;
max = a;
}
if (min > c) min = c;
if (max < c) max = c;
にする。
104デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/05/28(木) 15:37:06.84ID:z3rIKeXH0 もともと穴埋め問題なのに穴以外のところを変更しちゃダメだろう
105デフォルトの名無しさん (ワッチョイ b95f-bxq0)
2020/05/28(木) 19:53:34.78ID:DxwkdxOL0 Makefileを作るのは今もモダンなやり方でしょうか?
>>105
モダンな方法は言語によってもいろいろあるようですが(例えばネットに接続してライブラリの最新版を fetch してくるものとか)、でも、私は make から離れなれないですね…
モダンな方法は言語によってもいろいろあるようですが(例えばネットに接続してライブラリの最新版を fetch してくるものとか)、でも、私は make から離れなれないですね…
107デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/29(金) 03:43:32.77ID:m+W9okcT0 今はninjaだかがモダンらしい
使ったことはないが
使ったことはないが
108デフォルトの名無しさん (ワッチョイ 2b10-IvHb)
2020/05/29(金) 04:13:16.10ID:NMA5faiP0 MPD(Music Player Daemon)のmakeがninjaに変わって、ビルドに泣いた。
mesonというconfigure相当のモノに、configureで指定していたオプションが無くて...
日本語命名品は凶悪だわ。MIRAIとかAnna-senpaiとか。
mesonというconfigure相当のモノに、configureで指定していたオプションが無くて...
日本語命名品は凶悪だわ。MIRAIとかAnna-senpaiとか。
109デフォルトの名無しさん (アウアウエー Sa23-1zQY)
2020/05/29(金) 12:01:15.97ID:kNF9S1Cua >>105
C(gcc/cl)でもC++(g++/cl)でもC#(csc)でも現役でmakefile使ってる
C(gcc/cl)でもC++(g++/cl)でもC#(csc)でも現役でmakefile使ってる
110デフォルトの名無しさん (ワッチョイ d3f8-TLlO)
2020/05/29(金) 12:14:09.12ID:gj3l07yG0 モダンかと言われると微妙だけど今ならcmakeでMakefile生成でしょ
111デフォルトの名無しさん (ワッチョイ 012c-HO12)
2020/05/29(金) 12:47:09.33ID:1C1s9P850 Ruby の、rake, thor みたいな、タスクランナーでも使えば?
112デフォルトの名無しさん (ワッチョイ 9302-SpyH)
2020/05/29(金) 13:35:17.59ID:XdiR54Y60 俺もCMake愛用している
113デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/29(金) 16:31:04.57ID:6E0tm9y70 テキストエディタほどでないにせよ、ビルドツールも喧嘩の種になりそうかな。
大勢の人が集団で開発とか、クロスプラットフォーム向けに配るとかでなきゃ、
好きにすりゃいい気もするのう。
個人的にはmakeが大好きで万能バッチファイル的に使うけど、
俺自身決してモダンボーイじゃないから。
大勢の人が集団で開発とか、クロスプラットフォーム向けに配るとかでなきゃ、
好きにすりゃいい気もするのう。
個人的にはmakeが大好きで万能バッチファイル的に使うけど、
俺自身決してモダンボーイじゃないから。
114デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/29(金) 16:58:41.27ID:m+W9okcT0 makeってあれサブルーチンみたいなことするにはどうすりゃええの
115デフォルトの名無しさん (ワッチョイ 930e-moxv)
2020/05/29(金) 17:27:36.35ID:eRAtimlp0 gcc流のオプションをclのオプションに変換してclを呼び出すラッパーある?
116デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/29(金) 19:15:47.50ID:6E0tm9y70 >>114 本当に単純なサブルーチン呼び出し風なら
サブルーチンに相当するターゲットを順番に依存対象にしてこんな感じ。
.PHONY: main sub1 sub2
main: sub1 sub2
@echo "and now, going main"
sub1:
@echo "this is sub1"
sub2:
@echo "I'm sub2"
サブルーチンに相当するターゲットを順番に依存対象にしてこんな感じ。
.PHONY: main sub1 sub2
main: sub1 sub2
@echo "and now, going main"
sub1:
@echo "this is sub1"
sub2:
@echo "I'm sub2"
>>115
それ需要がありそうですね…
それ需要がありそうですね…
118デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/30(土) 01:03:07.50ID:fWBi0L4D0119デフォルトの名無しさん (ラクッペペ MM4b-eKGp)
2020/06/01(月) 09:59:41.94ID:ruvyvZ5aM てす
120デフォルトの名無しさん (ワッチョイ d344-8DLB)
2020/06/01(月) 23:23:12.08ID:GR8q4A/e0 グローバル変数で、
char A[4], B[4];
と宣言したら、メモリ中でAのすぐ隣にBが来ることは保証されているんですか?
例えば、Aはインデックスが0から3までですが、この範囲を超えてA[4]に
アクセスしたら、それはB[0]にアクセスしたことになるんですか?
char A[4], B[4];
と宣言したら、メモリ中でAのすぐ隣にBが来ることは保証されているんですか?
例えば、Aはインデックスが0から3までですが、この範囲を超えてA[4]に
アクセスしたら、それはB[0]にアクセスしたことになるんですか?
121デフォルトの名無しさん (ワッチョイ 4101-+GDy)
2020/06/01(月) 23:30:59.93ID:K8qQM5W10 環境依存でどっちに配置されるかの保証はなかったような
122デフォルトの名無しさん (ワッチョイ 5347-moxv)
2020/06/01(月) 23:46:04.68ID:idPskxLG0 >>120
範囲を超えたアクセスは未定義動作。順序どころか隣接する保証もないよ。
範囲を超えたアクセスは未定義動作。順序どころか隣接する保証もないよ。
123デフォルトの名無しさん (アウアウエー Sa23-hvra)
2020/06/02(火) 00:09:21.50ID:xK3L40dza 自分で保証するしかないよ
124デフォルトの名無しさん (ワッチョイ 41ca-buPU)
2020/06/02(火) 07:03:39.55ID:0laQbiBy0 >>120
順序や隣接を保証したいなら struct を使うとか
順序や隣接を保証したいなら struct を使うとか
125デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/06/02(火) 09:08:00.49ID:6Rv/5LNl0 その場合もパディングについては知っておかないと。
126デフォルトの名無しさん (スプッッ Sdf3-JkuK)
2020/06/02(火) 09:46:07.68ID:t1gowtwYd 荒井さんがケツに詰め物してくるねんで
127デフォルトの名無しさん (ブーイモ MMab-S7K8)
2020/06/02(火) 10:04:47.98ID:OudFIOlRM char A[8];
char *const B=&A[4];
でいいじゃんなにが問題なの?
char *const B=&A[4];
でいいじゃんなにが問題なの?
128デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/06/02(火) 10:15:18.47ID:6Rv/5LNl0129デフォルトの名無しさん (ワントンキン MMd3-IvHb)
2020/06/02(火) 12:31:18.57ID:9wo5PvtnM 質問者は隣接して欲しくないのだろう。
130デフォルトの名無しさん (ワイーワ2 FFa3-1zQY)
2020/06/02(火) 13:00:39.48ID:nij7NU0AF ゴールポストが動き始めましたω
131デフォルトの名無しさん (ワッチョイ 2b69-upCQ)
2020/06/02(火) 13:13:15.29ID:LaW3uxXL0 × 隣接する前提で突破させてアクセスしたい
△ どうも B[0] の値がいつのまにか変わっちゃってるんだけど A[]で突破して書き込んだ可能性をチェックしたほうがいい?
△ どうも B[0] の値がいつのまにか変わっちゃってるんだけど A[]で突破して書き込んだ可能性をチェックしたほうがいい?
132デフォルトの名無しさん (ワッチョイ 9302-YHRm)
2020/06/02(火) 13:23:37.03ID:iAkpbabl0 配列操作の関数とかで
void func(int data[], int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
みたいな関数って
void func(int *data, int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
って書いても動くけど、何が違うのですか?
書き方違うだけでまったく同じ?
void func(int data[], int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
みたいな関数って
void func(int *data, int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
って書いても動くけど、何が違うのですか?
書き方違うだけでまったく同じ?
133デフォルトの名無しさん (ワッチョイ 2b69-upCQ)
2020/06/02(火) 13:27:57.83ID:LaW3uxXL0 文法上は違いがなく同じ どっちで書いてもいい
* ではなく [ ] をあえて使って配列ですよと強調することはある
* ではなく [ ] をあえて使って配列ですよと強調することはある
134デフォルトの名無しさん (ワッチョイ 9302-YHRm)
2020/06/02(火) 13:28:49.67ID:iAkpbabl0 ありがとう
135デフォルトの名無しさん (JP 0Ha3-7GQX)
2020/06/02(火) 14:06:09.30ID:G0GLY7QlH IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
136デフォルトの名無しさん (ワッチョイ 930e-moxv)
2020/06/02(火) 18:13:46.15ID:eZHppilZ0 どう間違ってもsizeof data == sizeof(int *)にしかならんものなのに
白々しくモロバレな嘘を書くことはあるね、確かに
白々しくモロバレな嘘を書くことはあるね、確かに
>>127
うまいですねー
うまいですねー
138デフォルトの名無しさん (エムゾネ FFea-hy1p)
2020/06/03(水) 09:03:39.06ID:wbZbutmLF まじめにやると
union{
char A[8];
struct{
char A[4];
char B[4];
}S;
}U;
union{
char A[8];
struct{
char A[4];
char B[4];
}S;
}U;
139デフォルトの名無しさん (エムゾネ FFea-hy1p)
2020/06/03(水) 09:11:25.16ID:wbZbutmLF 蛇足でついでにテスト
http://codepad.org/TOo6U3jn
http://codepad.org/TOo6U3jn
140デフォルトの名無しさん (ワッチョイ 6af8-T3vA)
2020/06/03(水) 10:41:18.77ID:OT4MJN130 #pragma packや__attribute__((packed))は使わなくてよいの?
141デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/03(水) 15:06:51.95ID:sI0nXA5M0 パディングのせいで上手くいくとは限らない(というが大抵の場合うまくいかない)
ってのは>>125が指摘してるのな
ってのは>>125が指摘してるのな
142デフォルトの名無しさん (ワッチョイ 99ad-8EEL)
2020/06/03(水) 23:54:54.10ID:s2kYPv500 C言語は得意だぞ笑
何でも聞いてくれ!
何でも聞いてくれ!
143デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 00:21:55.42ID:0jbM0LQ+0 スリーサイズを
144デフォルトの名無しさん (ワッチョイ c146-JlRw)
2020/06/04(木) 04:52:41.39ID:+EhwVkpj0 char、short、long
145デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/04(木) 08:57:07.42ID:Cmh9rlbL0 >>138
それって言語仕様としてはうまくいくと保障できる?
それって言語仕様としてはうまくいくと保障できる?
146デフォルトの名無しさん (ワッチョイ 4a0e-uikQ)
2020/06/04(木) 10:08:24.56ID:85VTz4/e0 構造体はメンバの配置順を保証し、共用体は同一アドレスから開始を保証する
charなので境界調整要求が1でパディングに邪魔されることもない
charなので境界調整要求が1でパディングに邪魔されることもない
147デフォルトの名無しさん (ラクッペペ MMde-uikQ)
2020/06/04(木) 10:45:21.20ID:TPmiBK6gM charだからといってバイト境界が1になるという保証は無い
148デフォルトの名無しさん (オイコラミネオ MM65-I6IY)
2020/06/04(木) 10:53:00.07ID:Rfl/DppQM 隣接するcharの間にパディングされるとしたらどんな場合なの?
149デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 11:06:13.36ID:fpPgT8jn0 俺ってC言語得意だからいっぱい質問してくれると嬉しいな
150デフォルトの名無しさん (ワッチョイ 2501-B5RW)
2020/06/04(木) 11:20:23.30ID:KwTRcPMk0 頼もしいなヲイ。
151デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 11:21:45.55ID:0jbM0LQ+0 「愛してる」ってC言語で言ってみて
152デフォルトの名無しさん (ワッチョイ 2501-B5RW)
2020/06/04(木) 11:41:06.99ID:KwTRcPMk0 ++i;
154デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:23:12.56ID:fpPgT8jn0 charは絶対1バイトになるよな
それともOSのページングの話
それともOSのページングの話
155デフォルトの名無しさん (ワッチョイ 35e6-uikQ)
2020/06/04(木) 12:25:55.50ID:c/bZjxGo0 charでダメならint8_tとかじゃダメなの?
156デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:27:08.24ID:fpPgT8jn0 普通にPCで応用ソフト作ってるときにアライメントとか意識したことないわ
157デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:28:04.94ID:fpPgT8jn0 ここのスレってもしかして組み込み連中が多いのか!?
158デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:35:48.21ID:fpPgT8jn0 PCは4バイトでやりとりするからint型が一番速いというのは聞いたことがあるが、ソースコードの可読性を落としてまでintで宣言しないだろ
優先順位:可読性>>>>型による実行速度の改善
優先順位:可読性>>>>型による実行速度の改善
159デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/04(木) 14:14:51.58ID:3M18ri9Na >>148
4バイト、8バイト、16バイト境界などで配置する処理系があるかもしれない
4バイト、8バイト、16バイト境界などで配置する処理系があるかもしれない
160デフォルトの名無しさん (ワッチョイ 3e8c-tVk4)
2020/06/04(木) 14:19:05.16ID:86obmMrj0 Cは白飯
161デフォルトの名無しさん (ワッチョイ 86d2-uikQ)
2020/06/04(木) 14:21:50.06ID:cftkhVEH0 なんか関わっちゃいけないやつが湧いてるな…。
162デフォルトの名無しさん (ワッチョイ a105-uikQ)
2020/06/04(木) 14:34:04.88ID:797dYlrL0 >>158
32ビットCPUなら4バイト、64ビットCPUなら8バイトずつ読む
のがCPUさんにだいたい優しいんよ
ていうかワード境界またぐと例外ぶっこくCPUとかあるし
でもって例外処理で残りを読むとかで超遅くなるとかさー
32ビットCPUなら4バイト、64ビットCPUなら8バイトずつ読む
のがCPUさんにだいたい優しいんよ
ていうかワード境界またぐと例外ぶっこくCPUとかあるし
でもって例外処理で残りを読むとかで超遅くなるとかさー
163デフォルトの名無しさん (ワッチョイ 8669-INBt)
2020/06/04(木) 14:42:43.40ID:xW4yRJob0 struct は アライメント1/4/8 で半端な部分はパディングする
アライメント4 で宣言順に配置する処理系
struct A1 {
char a[3];
char b[6];
int c;
};
は
a 3バイトの後 1バイトパディングを挟んで
b 6バイト 2バイトパディングを挟んで
c sizeof(int) バイト
こうなる
union の中の struct だけは アライメント1 というのもない
union {
char x[100];
struct A1 a;
} foo;
struct A1 b;
foo.a と b が異なるメモリアクセスになっちまうもの
アライメント4 で宣言順に配置する処理系
struct A1 {
char a[3];
char b[6];
int c;
};
は
a 3バイトの後 1バイトパディングを挟んで
b 6バイト 2バイトパディングを挟んで
c sizeof(int) バイト
こうなる
union の中の struct だけは アライメント1 というのもない
union {
char x[100];
struct A1 a;
} foo;
struct A1 b;
foo.a と b が異なるメモリアクセスになっちまうもの
■ このスレッドは過去ログ倉庫に格納されています
