[過去ログ] C言語なら俺に聞け 151 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): デフォルトの名無しさん (ワッチョイ cf8f-fy95) [] 2019/04/02(火) 11:23:37.62 ID:SQXqRaAc0(1/3) AAS
!extend:checked:vvvvv:1000:512
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/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2
(1): デフォルトの名無しさん (ワッチョイ 0f8f-068C) [sage] 2019/04/02(火) 11:27:10.68 ID:SQXqRaAc0(2/3) AAS
前スレ
C言語なら俺に聞け 150
2chスレ:tech

!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

次スレを作る時は上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。

…あってる…?
3
(1): デフォルトの名無しさん (ワッチョイ 0f8f-068C) [sage] 2019/04/02(火) 11:28:04.82 ID:SQXqRaAc0(3/3) AAS
これで良い…のかな

!extend:checked:vvvvv:1000:512

次スレを作る時は >>1 の上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。
4
(1): デフォルトの名無しさん (ワッチョイ 1f19-9gjM) [sage] 2019/04/02(火) 16:37:14.52 ID:VBVVrqHU0(1) AAS
前スレ977のリンクが404ぽいので
魚拓から復元してみた
https://ideone.com/IhBGrr

977 名前:デフォルトの名無しさん (アウアウエー Sa3f-XwTE)[] 投稿日:2019/04/01(月) 21:33:02.04 ID:v6mAk26Pa [1/3]
「要素型がint型で要素数がnの配列を受け取って、
全要素に添字と同じ値を代入する関数set_idx」を作成しました。
http://codepad.org/krsZoljq

配列aの要素数はマクロ定義で#define NUMBER 10とし、
問題なく動作しました。
ところが、この要素数10を60に書き換えてみたところ、
コンパイルされたexeファイルを実行しても動作しません。
コンパイラはMinGW(gcc)です。
思い当たる原因を教えていただけないでしょうか。
5
(2): 前スレ977 (アウアウエー Sa3f-XwTE) [sage] 2019/04/02(火) 20:52:18.32 ID:JwQjLW9ya(1) AAS
>>4
codepadが消えてしまっていたのですね、
復元ありがとうございます。
当初は16行目を
int a[] = {0};
と書いていたため上手く動作せず質問した次第です。

前スレで色々とレス頂きありがとうございました。
プログラムを書く際にバッファオーバーランの危険性を考慮する必要があることすら知らないレベルなので、
メモリの使い方を念頭において学習していきます。
C言語は諦めた方がよいというレスもありましたが、
センスがないのは重々承知の上で、腹を括って勉強していくつもりです。
6: デフォルトの名無しさん (ワッチョイ 0f8f-068C) [sage] 2019/04/03(水) 00:01:40.97 ID:qKRJca2S0(1) AAS
>>5
いえ
すみません

「呼び出し元で配列長を管理出来ている。問題はない」と言いうるようです /* むしろ free し忘れる方が問題か */
誤解・不適切な部分があったこと、申し訳なく存じます

色々大変かも知れませんが、頑張ってください
7: デフォルトの名無しさん (ワッチョイ 9fc5-1m/C) [sage] 2019/04/03(水) 00:29:12.53 ID:kMUljaKF0(1) AAS
>>5
cは非生産的で大したアプリは最初のうちは作れない
しかし覚えれば言語やOSや組み込みなどに手が出せるようになる
独学はイバラの道だが頑張ってね
8: デフォルトの名無しさん (ワッチョイ 9fa5-mpQp) [sage] 2019/04/03(水) 14:57:25.86 ID:PdcOYuo+0(1) AAS
>「c言語 おすすめしない理由」でググると
>https://www.sejuku.net/blog/3619

sejukuはねーよ
C言語のウソ記事まき散らしたとこじゃねえか
9: デフォルトの名無しさん (ワッチョイ 1f19-9gjM) [sage] 2019/04/03(水) 17:06:47.20 ID:jUO0vRXi0(1) AAS
全く以てくだらんな
何言語だろうが関係ねえ話で
習得できなかったやつの言い訳を集めただけの駄文だ

もし「初心者」がここを見ているなら一言いいたい
【 あ ん な の 忘 れ ろ 】
プログラム言語に限らず人生すべてに影響する有害な集団催眠だ
10: デフォルトの名無しさん (ワンミングク MMbf-QHAD) [sage] 2019/04/03(水) 19:21:17.48 ID:6tuZKWrYM(1/2) AAS
既存のソフト(dll)を引き継いだのですが、そのdll内でバイナリファイルをリードしています。
_open(xxx, _O_BINARY, _S_IREAD) しているのですが、複数のプロセスが同じタイミングでアクセスしても排他処理されないですよね?
どうもうまく読めてないのが原因かもしれない障害が発生して困っています。
どうすれば排他処理できるでしょうか。
11: デフォルトの名無しさん (アウアウエー Sa3f-RDgh) [sage] 2019/04/03(水) 19:55:12.80 ID:ZPobjXHOa(1) AAS
読むだけなら排他は要らないんじゃない
12: デフォルトの名無しさん (ワッチョイ 0f63-r4m/) [sage] 2019/04/03(水) 20:00:41.26 ID:ZmtTnpp/0(1) AAS
書き込みされたとき、どうなるかな
13: デフォルトの名無しさん (ワッチョイ 6b8f-cGEb) [sage] 2019/04/03(水) 20:13:27.48 ID:OJDzRIb+0(1/3) AAS
排他処理の方法を考えようにも情報が少なすぎるよ。
14: デフォルトの名無しさん (ワンミングク MMbf-QHAD) [sage] 2019/04/03(水) 20:30:58.20 ID:6tuZKWrYM(2/2) AAS
レスありがとございます。
後だしですが、書き込みはされないです。そこまでかんがえてなかったですが。
リードだけなら大丈夫そうですね。だったら他のとこに問題があるのかな・・・
15: デフォルトの名無しさん (アウアウウー Sa0f-dxKi) [] 2019/04/03(水) 20:57:30.11 ID:GUjlsyjta(1) AAS
ファイル書いてる最中に読まないようにそのライブラリを使う側と書き込みする側のプログラムでロック掛けるようにするぐらいしか方法ないのでは?
ライブラリのソースもあって自分でも直せるというのなら自分でその辺改造しちゃえば良いんだろうけど。それだったらわざわざここに質問書かんよな?
16: デフォルトの名無しさん (ワッチョイ 6b8f-cGEb) [sage] 2019/04/03(水) 21:24:51.36 ID:OJDzRIb+0(2/3) AAS
そもそも1プロセスでもそのファイルをオープンできているのだろうか?
17: デフォルトの名無しさん (ワッチョイ 3b7c-RDgh) [sage] 2019/04/03(水) 21:44:31.14 ID:NesRjmW10(1) AAS
その障害の内容教えてくれんとな
18: デフォルトの名無しさん (ワッチョイ 6b8f-cGEb) [sage] 2019/04/03(水) 21:51:55.02 ID:OJDzRIb+0(3/3) AAS
どこまで説明したら適切なアドバイスもらえるかって実務にも重要な要素だよな。これも練習ですな。
19: デフォルトの名無しさん (ワッチョイ 99da-iE/E) [sage] 2019/04/06(土) 14:35:16.98 ID:sYe67fpI0(1) AAS
https://wandbox.org/

codepad死んだっぽいので次スレから代わりに↑をテンプレに入れよう
20: デフォルトの名無しさん (アウアウウー Sac5-T5wd) [] 2019/04/08(月) 10:46:04.23 ID:slzfC4/wa(1) AAS
ここどう?
https://www.jdoodle.com/
色んな言語使えるようだ。もちろんCもある。
21: デフォルトの名無しさん (アウアウウー Sac5-L3CR) [sage] 2019/04/08(月) 10:58:04.07 ID:czvLDSaVa(1) AAS
はい
22
(7): デフォルトの名無しさん (ワッチョイ ee8f-hWz0) [sage] 2019/04/08(月) 20:38:05.96 ID:j+rCFaIP0(1) AAS
fprintf_s みたいな
foo_s 系の関数実装って増えてるん?

「Visual C++ でガッコウのコードがコンパイルできない」みたいな話をたまに見かけるけど…
23
(1): デフォルトの名無しさん (ワッチョイ 7d02-w1lf) [] 2019/04/08(月) 20:55:25.55 ID:26lZNeBT0(1) AAS
セキュリティの為にfoo_sが推奨されてるんだから、ガッコウのコードの方を変えるべきでは?
何年経ったと思ってるんだ。
24
(1): ◆mxojKcXMM. (ワッチョイ 6247-BZhk) [sage] 2019/04/08(月) 21:02:21.56 ID:PMJ1/1Ak0(1/4) AAS
>>22
その s 系とかいうやつは、いまいち気に要らない仕様でいちいち頭に来るので私は使わないです
25
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/08(月) 21:17:15.17 ID:TICLg0mt0(1/3) AAS
>>23
_s 系の関数って言語仕様上はオプショナルでしょ。
安全でない関数の中で明確に仕様から削除されたのは
gets だけのはずだし、もちろん、安全性を意識させるのは
望ましいけど、どこでも _s 系の関数を使えるわけじゃない。

あくまでもオプショナルだから >>22 は「実装って」という聞き方をしているのだと思うぞ。
26
(2): ◆mxojKcXMM. (ワッチョイ 6247-BZhk) [sage] 2019/04/08(月) 22:00:58.21 ID:PMJ1/1Ak0(2/4) AAS
>>25
Microsoft のコンパイラ以外では使えない、と聞いているのも納得がいかないのです、本当によいものなら、なぜ _s 系が移植されないのでしょうか…
27
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/08(月) 22:21:13.00 ID:TICLg0mt0(2/3) AAS
>>26
そんなことを >>22 は聞いていない。
誤読。
28
(1): ◆QZaw55cn4c (ワッチョイ 6247-BZhk) [sage] 2019/04/08(月) 22:27:24.57 ID:PMJ1/1Ak0(3/4) AAS
>>27
失礼。>>26>>22 への直接または間接の回答を意図しておりません
とある「有用な」実装が広く使われるべき、という意見に対して、microsoft のコンパイラ環境でしか使えない実装を教育目的で強要してもいいのか、というか、そもそもそんなに「有用」な実装なのですか?本当ですか?
という視点で >>22 を強く批判する内容です
29
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/08(月) 22:35:39.51 ID:TICLg0mt0(3/3) AAS
>>28
_s 系の関数はオプショナルとは言えども規格にある存在なので、
Visual C++ は例のひとつとして挙がっているにすぎません。
間違いなくありがちな問題を軽減しますので、
使える処理系ならば使うように誘導するのは合理的です。
30
(2): ◆QZaw55cn4c (ワッチョイ 6247-BZhk) [sage] 2019/04/08(月) 23:24:16.54 ID:PMJ1/1Ak0(4/4) AAS
>>29
お手数をおかけし恐縮ですが
「規格にある存在」というその規格をご教示願えますか?
手元にある ISO/IEC 9899:1999 には見えないようですが…
31: デフォルトの名無しさん (ワッチョイ 698f-JThg) [sage] 2019/04/08(月) 23:30:36.72 ID:dk5yj0CN0(1/2) AAS
visual studioで新しいプロジェクトを作成して始めてビルドする度に
/D _CRT_SECURE_NO_WARNINGS
に誘導されてます……
32: デフォルトの名無しさん (アウアウカー Sa09-f9KT) [sage] 2019/04/08(月) 23:46:29.39 ID:Z7UT2eMea(1/2) AAS
localtime_s 使ったら内部でmutex使ってて無茶苦茶遅いのはむかついた
33
(1): デフォルトの名無しさん (アウアウカー Sa09-f9KT) [sage] 2019/04/08(月) 23:48:18.87 ID:Z7UT2eMea(2/2) AAS
>>30
なぜそんな古いものを…
引数にvoid入れるとびっくりするタイプ?
34: デフォルトの名無しさん (ワッチョイ 698f-JThg) [sage] 2019/04/08(月) 23:50:57.39 ID:dk5yj0CN0(2/2) AAS
localtimeについては批判できねぇ。
マルチスレッドでlocaltime呼び出してたせいで正体不明のバグに数日間悩まされたからな。。。
35
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/09(火) 03:49:52.59 ID:jYkGM3GN0(1/5) AAS
>>30
C99 には無い。 C11 に入った。
Annex K (normative) Bounds-checking interfaces
って項目ね。
Wipkipedia でも言及がある。
https://ja.wikipedia.org/wiki/C11_(C%E8%A8%80%E8%AA%9E)#.E3.82.AA.E3.83.97.E3.82.B7.E3.83.A7.E3.83.B3.E6.A9.9F.E8.83.BD
36
(1): デフォルトの名無しさん (ワッチョイ ee8f-hWz0) [sage] 2019/04/09(火) 07:47:37.12 ID:lax+sHP30(1/2) AAS
>>22
> fprintf_s みたいな
> foo_s 系の関数実装って増えてるん?

「いや増えてない」←わかる
「俺は foo_s みたいな関数が嫌い」←わかる
「俺は foo_s みたいな関数が嫌いだから >>22 を強く批判する」←全く分からない

誰か解説してくれるのだろうか

私は「ガッコウのセンセイ」でもないし「ガッコウの教材」の著者でもないから何とも
新学期だから知恵袋とかに質問増えそうじゃん?
37: デフォルトの名無しさん (ワッチョイ 698f-JThg) [sage] 2019/04/09(火) 07:52:30.47 ID:vvoqC9qD0(1) AAS
>>22 を批判してるんじゃなくて>>22 にかかれてるような状況を批判してるんじゃないの?
38: デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/09(火) 09:52:53.37 ID:EB2iO7oh0(1/2) AAS
>>24
同感
いけ好かねえの多いよな
39: デフォルトの名無しさん (ワッチョイ ee63-k8NZ) [sage] 2019/04/09(火) 09:56:13.65 ID:A5vZx8Gh0(1/3) AAS
>という視点で >>22 を強く批判する内容です

そう解釈してやっても良いが、この日本語はおかしい
40: デフォルトの名無しさん (スッップ Sda2-JThg) [sage] 2019/04/09(火) 10:28:57.92 ID:AXiDgdzZd(1/6) AAS
話それちゃうよ?
41: デフォルトの名無しさん (アウアウウー Sac5-T5wd) [] 2019/04/09(火) 13:13:25.92 ID:xq+Mg1lAa(1) AAS
漢なら localtime_r()
42
(1): デフォルトの名無しさん (スッップ Sda2-JThg) [sage] 2019/04/09(火) 13:25:42.77 ID:AXiDgdzZd(2/6) AAS
真の漢なら
#ifdef _win32
localtime_s()
#else
localtime_r()
#endif
43
(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/09(火) 13:27:54.07 ID:jYkGM3GN0(2/5) AAS
>>42
__STDC_LIB_EXT1__ を使った方がポータブルじゃない?
44
(1): デフォルトの名無しさん (スッップ Sda2-JThg) [sage] 2019/04/09(火) 13:29:27.93 ID:AXiDgdzZd(3/6) AAS
>>43
先生、それはなんですか?
45: はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/09(火) 16:24:32.16 ID:jYkGM3GN0(3/5) AAS
>>44
ググって。
46: デフォルトの名無しさん (ワッチョイ 6969-p3R9) [sage] 2019/04/09(火) 16:29:41.88 ID:obpichI70(1) AAS
C11 以降か…
47
(1): デフォルトの名無しさん (スッップ Sda2-JThg) [sage] 2019/04/09(火) 18:39:32.35 ID:AXiDgdzZd(4/6) AAS
>>43
ググってヒットした件数的にこんなん使えませんわ。
48: はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/09(火) 19:07:14.53 ID:jYkGM3GN0(4/5) AAS
>>47
件数じゃなくて、用途に対する妥当性で考えてよ
49: デフォルトの名無しさん (スッップ Sda2-JThg) [sage] 2019/04/09(火) 21:04:38.62 ID:AXiDgdzZd(5/6) AAS
質問スレっぽいスレタイなのにそこまで考えさせられるのかよw
あんまり使われてないっぽいものは使わないってスタンスは崩さないよ、俺は。
50: デフォルトの名無しさん (ワッチョイ 5152-iMOx) [sage] 2019/04/09(火) 21:11:11.26 ID:e3amBytd0(1) AAS
使われてないものは使わない
つまりC言語自体・・・(ボソッ
51: デフォルトの名無しさん (スッップ Sda2-JThg) [sage] 2019/04/09(火) 21:27:21.27 ID:AXiDgdzZd(6/6) AAS
言語を自分で選べるほど偉くないんですよ
52: ◆QZaw55cn4c (ワッチョイ 6247-BZhk) [sage] 2019/04/09(火) 21:47:18.63 ID:ssMdw0XF0(1/3) AAS
>>35
ほえ〜
Annex K は確かにみじんも記憶に残っていません…でした
ご教示いただき感謝いたします
53: ◆QZaw55cn4c (ワッチョイ 6247-BZhk) [sage] 2019/04/09(火) 21:52:14.86 ID:ssMdw0XF0(2/3) AAS
>>33
実は K&R2 のみが正義、K&R2 こそ必要にしてかつ十分、という立場なので、そんな私が C99 を推挙した時点で、すでにして大幅に compromise しているつもりなのでした…
54
(2): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/09(火) 21:55:42.64 ID:EB2iO7oh0(2/2) AAS
K&R2って妥協の産物だろ
K&R1こそ原理主義者の拠り所だ
55: はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/09(火) 22:05:25.20 ID:jYkGM3GN0(5/5) AAS
でもまあ JIS の最新は C99 相当だしな。
英語を読むのはしんどいし、
日本語の資料があるなら日本語の方がいいわ。
56
(4): ◆QZaw55cn4c (ワッチョイ 6247-BZhk) [sage] 2019/04/09(火) 22:25:14.01 ID:ssMdw0XF0(3/3) AAS
>>54
>K&R2って妥協の産物

それも理解できます
K&R2 の最大の改悪部分は「構造体の実体渡しができること」
配列の実体を丸まま関数に渡せないくせに、構造体では出来るって意味わかんない
もしかして
struct S {
int a[65536];
};
とかいう構造体があったら、それを全部スタックに載せるつもりなのか?そういうことをする奴が現れる可能性を考えたのか?と小一時間問い詰めたい気分になりました…
57: デフォルトの名無しさん (ワッチョイ ee8f-hWz0) [sage] 2019/04/09(火) 22:31:23.50 ID:lax+sHP30(2/2) AAS
struct S {
long long ago0[1048576*1048576];
long long ago1[1048576*1048576];
long long ago2[1048576*1048576];
long long ago3[1048576*1048576];
};
58
(2): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/09(火) 22:32:15.47 ID:KCu43/3wa(1) AAS
>>56
それは、配列の方が悪いんでしょうに
構造体はコピーを渡すのが全然正しいじゃないの
59: デフォルトの名無しさん (ワッチョイ ee63-k8NZ) [sage] 2019/04/09(火) 22:45:54.00 ID:A5vZx8Gh0(2/3) AAS
>>54
K&R1原理主義って、素敵?
60: デフォルトの名無しさん (ワッチョイ 2e12-bgjH) [sage] 2019/04/09(火) 22:48:12.12 ID:PvJWb3nJ0(1) AAS
in a galaxy far,
far away...
61: デフォルトの名無しさん (ワッチョイ ee63-k8NZ) [sage] 2019/04/09(火) 23:05:49.72 ID:A5vZx8Gh0(3/3) AAS
/* not reach here outside the universe */
62: デフォルトの名無しさん (ワッチョイ 5152-iMOx) [sage] 2019/04/10(水) 01:12:36.88 ID:sw3hAH5+0(1) AAS
jedi = get_force();
63
(1): ◆QZaw55cn4c (ワッチョイ 6247-BZhk) [sage] 2019/04/10(水) 01:49:22.11 ID:57hoitEO0(1/3) AAS
>>58
構造体といえどもアドレスを渡すのが真に正しく、配列なら言語仕様でそれを強要される、なぜ構造体には甘い顔を見せる必要があるのか?
64: はちみつ餃子◆8X2XSCHEME (ワッチョイ c63e-k8NZ) [sage] 2019/04/10(水) 04:59:47.74 ID:mOo8C1VR0(1) AAS
>>56
極端なことが「できてしまう」のが問題ということですか? そもそも C なんてそんなものでしょう。
状況を見て適当に使い分けるべきで、駄目な使い方をしたら何だって駄目ですよ。
65
(1): デフォルトの名無しさん (ワッチョイ ee8f-hWz0) [sage] 2019/04/10(水) 06:18:28.03 ID:qyNiIlQC0(1/9) AAS
>>63
ド素人の勝手な推測だけれども

「配列だとマジでサイズどんだけか分かったもんじゃないじゃん」
「構造体のメンバ」に配列が来る場合はあるけど、そのサイズは多寡が知れてるじゃん」

という考えかもアリかもしんない
66: デフォルトの名無しさん (ドコグロ MM4a-xk87) [sage] 2019/04/10(水) 06:47:52.31 ID:bjp/36w+M(1/2) AAS
むしろ勝手にアドレス渡しになる配列が甘やかされすぎ
文字列がcharの配列だからしょうがないけど
67: デフォルトの名無しさん (アークセー Sx91-L3CR) [sage] 2019/04/10(水) 07:49:55.31 ID:PtgOSD4Jx(1) AAS
配列の実引数をポインタ仮引数で受けれるという仕様上、配列のサイズ情報が失われコンパイラは何バイトコピーすれば良いか分からないから致し方ない。
68: デフォルトの名無しさん (アウアウウー Sac5-T5wd) [] 2019/04/10(水) 09:42:54.83 ID:G/tPYfHxa(1/2) AAS
>>56
昔々初心者の頃にやっちゃって物凄く遅くなって気づいた事があったw
69: デフォルトの名無しさん (アウアウウー Sac5-T5wd) [] 2019/04/10(水) 09:49:26.10 ID:G/tPYfHxa(2/2) AAS
構造体も const で渡されたらこっそりポインタ使って読むだけのアクセスするコード作っちゃっても良いのにな。
マルチスレッドで動くプログラムの時に死ぬかも知れんが。
70
(1): デフォルトの名無しさん (アウアウカー Sa09-f9KT) [sage] 2019/04/10(水) 10:06:17.49 ID:QqefTxrga(1) AAS
そもそも[]が無ければ誤解も減ったと思うよ
いい年した大人が、引数で渡ってきた配列の sizeof 取ろうとするの良く見るぜ
71: デフォルトの名無しさん (ワッチョイ 02a5-lO4n) [sage] 2019/04/10(水) 10:42:39.87 ID:ryP68qDF0(1) AAS
現代教えられてる言語で60年代中期の古さを引きずってる言語だからだ

配列に対してsize適用すれば長さを取れるのは現代じゃあ普通で、
取れないC言語のほうがおかしい、
これ、誤解でも何でもないからな
72: デフォルトの名無しさん (ワッチョイ a278-l+U4) [sage] 2019/04/10(水) 10:46:50.33 ID:Y6MOlOQR0(1) AAS
sizeofで取れるのは要素数じゃないけどな
73
(2): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 11:14:25.33 ID:9YALwuYf0(1/17) AAS
>>58
事実上、構造体はほとんどの場合ポインタで渡すよな
実体で渡すという特殊なケースがデフォになってて
ポインタで渡すという主要な使い方でアドレス演算子が必須って
おかしくね?
74: デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 11:16:06.57 ID:9YALwuYf0(2/17) AAS
>>70
だよな
[]こそ諸悪の根元
自動変数と仮引数と外部宣言でみんな意味違うとか
気が狂ってるとしか思えない
75: デフォルトの名無しさん (アウアウウー Sac5-T5wd) [] 2019/04/10(水) 11:23:36.81 ID:7gi5m8N9a(1) AAS
そして「C言語はおかしい」と満場一致で結論が出て、また新たな言語が作られるのであった。

        完
76: デフォルトの名無しさん (ワッチョイ 7d02-w1lf) [] 2019/04/10(水) 11:25:19.17 ID:lv7m7vwC0(1) AAS
ここが変だよC言語って本が昔売られてたな。。。
77
(2): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 12:05:09.58 ID:JKE/90g3a(1) AAS
>>73
俺は安全のために実体渡すし返すよ、割と
78
(1): デフォルトの名無しさん (ドコグロ MM4a-xk87) [sage] 2019/04/10(水) 12:29:04.23 ID:bjp/36w+M(2/2) AAS
>>73
たまから、構造体はint, doubleとかの変数と同じく値渡しで一貫してる
配列がおかしいだけ
79: デフォルトの名無しさん (ワッチョイ 7e7c-k8NZ) [sage] 2019/04/10(水) 14:02:32.11 ID:pgm3XBSH0(1) AAS
不定と未定義がある限り、C言語はおかしくあり続けるのだ。
80
(1): デフォルトの名無しさん (ワッチョイ ee8f-hWz0) [sage] 2019/04/10(水) 14:28:30.84 ID:qyNiIlQC0(2/9) AAS
>>77
仮引数にconstはダメ?
81: デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 14:46:53.80 ID:9YALwuYf0(3/17) AAS
>>77
const使わんの? ・・・て、先に誰か言ってるな
82
(1): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 14:49:44.54 ID:9YALwuYf0(4/17) AAS
>>78
intが値渡しと決められた理由は理解してるか?
配列みたいに暗黙のアドレス演算子にもやればできた話で
そのほうがおまえさんの主張する一貫性にも叶うわけだが
83: デフォルトの名無しさん (ワッチョイ 6969-p3R9) [sage] 2019/04/10(水) 14:51:22.98 ID:hStfijf/0(1) AAS
by val と by ref でうあぁぁぁ
84
(2): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 15:21:31.93 ID:Y9aQW1ZLa(1/10) AAS
>>80
そりゃ、付けられるときは基本いつでもconstですよ
だからなに
85: デフォルトの名無しさん (ワッチョイ ee8f-hWz0) [sage] 2019/04/10(水) 15:49:26.74 ID:qyNiIlQC0(3/9) AAS
>>84
付けられないときってどんなときでしょう
86
(1): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 15:56:55.75 ID:9YALwuYf0(5/17) AAS
>>84
77で「安全のために」って言っているのを
誤って変更してしまうのを防ぐためと読んでいたが
これがそもそも違うのか?
87
(1): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 16:15:30.28 ID:Y9aQW1ZLa(2/10) AAS
>>86
変更しようがしまいが、意図があろうがなかろうが、コンテクストを分けるためですよ。
88
(1): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 16:36:22.97 ID:9YALwuYf0(6/17) AAS
>>87
へー、じゃあ関数を呼び出すたびごとにプロセス生成とかすんの?
89
(1): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 16:51:52.86 ID:Y9aQW1ZLa(3/10) AAS
>>88
なんで?
チミは頻繁にグローバル変数を使うってこと?やめたほうがええよ
90
(1): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 16:58:14.51 ID:9YALwuYf0(7/17) AAS
>>89
なんでグローバル変数を使っちゃいかんのだ?
スタックにしまえば安全だと思っているならおめでたいやつよ
91
(1): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 17:08:01.10 ID:Y9aQW1ZLa(4/10) AAS
>>90
グローバル変数だめでしょ。
スタックってなんのこと?まさか関数呼び出しとスタックがセットだと思ってる?
92
(1): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 17:12:08.62 ID:9YALwuYf0(8/17) AAS
>>91
なんでと聞いている
答えてくれ
93
(1): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 17:16:15.00 ID:Y9aQW1ZLa(5/10) AAS
>>92
そんなもん、密結合・低凝集を実現する目的でしか役に立たんからですよ。
94
(1): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 17:18:23.20 ID:9YALwuYf0(9/17) AAS
>>93
仮引数と自動変数が置かれるスタックもグローバルなんだが
そのせいで密結合・低凝集になったりしているか?
95: デフォルトの名無しさん (ワッチョイ ee8f-hWz0) [sage] 2019/04/10(水) 17:20:34.39 ID:qyNiIlQC0(4/9) AAS
記憶領域確保に失敗したとき
落ちないように頑張ってくれるのと
即落ちるのと

どっちがどうだったか忘れた
最近読んだどっかに書いてあった筈だけど思い出せん…

x86 限定で良いので挙動とコーディングの関係に心当たりのある方御教示ねがいます。。。
96: デフォルトの名無しさん (ワッチョイ 9dca-iMOx) [sage] 2019/04/10(水) 17:34:07.04 ID:VhJLBw5p0(1) AAS
こんな便所みたいなところでばっちばちでワロタ
97
(1): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 17:36:28.06 ID:Y9aQW1ZLa(6/10) AAS
>>94
そうそう、だからポインタを使わないのがいいね
98
(1): デフォルトの名無しさん (アウアウエー Sa8a-f9KT) [sage] 2019/04/10(水) 17:39:25.15 ID:Y9aQW1ZLa(7/10) AAS
構造体に限った話でもないが、グローバル変数のポインタが引数として渡され、更にそういう関数が多段に続いたコードとか地獄だよ。
誰かが止めねばならんよ。
99: デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 17:44:54.12 ID:9YALwuYf0(10/17) AAS
>>97
あ、おまえさんそっち系か
・・・なんでCなんか使うの?
100
(1): デフォルトの名無しさん (ワッチョイ 912d-iMOx) [sage] 2019/04/10(水) 17:46:05.16 ID:9YALwuYf0(11/17) AAS
>>98
グローバル変数をポインタ渡しは意味あるでしょ
スコープを指定する、的なやつ
1-
あと 902 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s