!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
探検
C言語なら俺に聞け 151
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ cf8f-fy95)
2019/04/02(火) 11:23:37.62ID:SQXqRaAc02デフォルトの名無しさん (ワッチョイ 0f8f-068C)
2019/04/02(火) 11:27:10.68ID:SQXqRaAc0 前スレ
C言語なら俺に聞け 150
https://mevius.5ch.net/test/read.cgi/tech/1549427943/
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑
次スレを作る時は上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。
…あってる…?
C言語なら俺に聞け 150
https://mevius.5ch.net/test/read.cgi/tech/1549427943/
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑
次スレを作る時は上記1行を「1行目に」コピーして2行に増やして必ず1行目に入るようにしてください。
…あってる…?
3デフォルトの名無しさん (ワッチョイ 0f8f-068C)
2019/04/02(火) 11:28:04.82ID:SQXqRaAc04デフォルトの名無しさん (ワッチョイ 1f19-9gjM)
2019/04/02(火) 16:37:14.52ID:VBVVrqHU0 前スレ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)です。
思い当たる原因を教えていただけないでしょうか。
魚拓から復元してみた
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前スレ977 (アウアウエー Sa3f-XwTE)
2019/04/02(火) 20:52:18.32ID:JwQjLW9ya >>4
codepadが消えてしまっていたのですね、
復元ありがとうございます。
当初は16行目を
int a[] = {0};
と書いていたため上手く動作せず質問した次第です。
前スレで色々とレス頂きありがとうございました。
プログラムを書く際にバッファオーバーランの危険性を考慮する必要があることすら知らないレベルなので、
メモリの使い方を念頭において学習していきます。
C言語は諦めた方がよいというレスもありましたが、
センスがないのは重々承知の上で、腹を括って勉強していくつもりです。
codepadが消えてしまっていたのですね、
復元ありがとうございます。
当初は16行目を
int a[] = {0};
と書いていたため上手く動作せず質問した次第です。
前スレで色々とレス頂きありがとうございました。
プログラムを書く際にバッファオーバーランの危険性を考慮する必要があることすら知らないレベルなので、
メモリの使い方を念頭において学習していきます。
C言語は諦めた方がよいというレスもありましたが、
センスがないのは重々承知の上で、腹を括って勉強していくつもりです。
6デフォルトの名無しさん (ワッチョイ 0f8f-068C)
2019/04/03(水) 00:01:40.97ID:qKRJca2S0 >>5
いえ
すみません
「呼び出し元で配列長を管理出来ている。問題はない」と言いうるようです /* むしろ free し忘れる方が問題か */
誤解・不適切な部分があったこと、申し訳なく存じます
色々大変かも知れませんが、頑張ってください
いえ
すみません
「呼び出し元で配列長を管理出来ている。問題はない」と言いうるようです /* むしろ free し忘れる方が問題か */
誤解・不適切な部分があったこと、申し訳なく存じます
色々大変かも知れませんが、頑張ってください
7デフォルトの名無しさん (ワッチョイ 9fc5-1m/C)
2019/04/03(水) 00:29:12.53ID:kMUljaKF08デフォルトの名無しさん (ワッチョイ 9fa5-mpQp)
2019/04/03(水) 14:57:25.86ID:PdcOYuo+09デフォルトの名無しさん (ワッチョイ 1f19-9gjM)
2019/04/03(水) 17:06:47.20ID:jUO0vRXi0 全く以てくだらんな
何言語だろうが関係ねえ話で
習得できなかったやつの言い訳を集めただけの駄文だ
もし「初心者」がここを見ているなら一言いいたい
【 あ ん な の 忘 れ ろ 】
プログラム言語に限らず人生すべてに影響する有害な集団催眠だ
何言語だろうが関係ねえ話で
習得できなかったやつの言い訳を集めただけの駄文だ
もし「初心者」がここを見ているなら一言いいたい
【 あ ん な の 忘 れ ろ 】
プログラム言語に限らず人生すべてに影響する有害な集団催眠だ
10デフォルトの名無しさん (ワンミングク MMbf-QHAD)
2019/04/03(水) 19:21:17.48ID:6tuZKWrYM 既存のソフト(dll)を引き継いだのですが、そのdll内でバイナリファイルをリードしています。
_open(xxx, _O_BINARY, _S_IREAD) しているのですが、複数のプロセスが同じタイミングでアクセスしても排他処理されないですよね?
どうもうまく読めてないのが原因かもしれない障害が発生して困っています。
どうすれば排他処理できるでしょうか。
_open(xxx, _O_BINARY, _S_IREAD) しているのですが、複数のプロセスが同じタイミングでアクセスしても排他処理されないですよね?
どうもうまく読めてないのが原因かもしれない障害が発生して困っています。
どうすれば排他処理できるでしょうか。
11デフォルトの名無しさん (アウアウエー Sa3f-RDgh)
2019/04/03(水) 19:55:12.80ID:ZPobjXHOa 読むだけなら排他は要らないんじゃない
12デフォルトの名無しさん (ワッチョイ 0f63-r4m/)
2019/04/03(水) 20:00:41.26ID:ZmtTnpp/0 書き込みされたとき、どうなるかな
13デフォルトの名無しさん (ワッチョイ 6b8f-cGEb)
2019/04/03(水) 20:13:27.48ID:OJDzRIb+0 排他処理の方法を考えようにも情報が少なすぎるよ。
14デフォルトの名無しさん (ワンミングク MMbf-QHAD)
2019/04/03(水) 20:30:58.20ID:6tuZKWrYM レスありがとございます。
後だしですが、書き込みはされないです。そこまでかんがえてなかったですが。
リードだけなら大丈夫そうですね。だったら他のとこに問題があるのかな・・・
後だしですが、書き込みはされないです。そこまでかんがえてなかったですが。
リードだけなら大丈夫そうですね。だったら他のとこに問題があるのかな・・・
15デフォルトの名無しさん (アウアウウー Sa0f-dxKi)
2019/04/03(水) 20:57:30.11ID:GUjlsyjta ファイル書いてる最中に読まないようにそのライブラリを使う側と書き込みする側のプログラムでロック掛けるようにするぐらいしか方法ないのでは?
ライブラリのソースもあって自分でも直せるというのなら自分でその辺改造しちゃえば良いんだろうけど。それだったらわざわざここに質問書かんよな?
ライブラリのソースもあって自分でも直せるというのなら自分でその辺改造しちゃえば良いんだろうけど。それだったらわざわざここに質問書かんよな?
16デフォルトの名無しさん (ワッチョイ 6b8f-cGEb)
2019/04/03(水) 21:24:51.36ID:OJDzRIb+0 そもそも1プロセスでもそのファイルをオープンできているのだろうか?
17デフォルトの名無しさん (ワッチョイ 3b7c-RDgh)
2019/04/03(水) 21:44:31.14ID:NesRjmW10 その障害の内容教えてくれんとな
18デフォルトの名無しさん (ワッチョイ 6b8f-cGEb)
2019/04/03(水) 21:51:55.02ID:OJDzRIb+0 どこまで説明したら適切なアドバイスもらえるかって実務にも重要な要素だよな。これも練習ですな。
19デフォルトの名無しさん (ワッチョイ 99da-iE/E)
2019/04/06(土) 14:35:16.98ID:sYe67fpI020デフォルトの名無しさん (アウアウウー Sac5-T5wd)
2019/04/08(月) 10:46:04.23ID:slzfC4/wa21デフォルトの名無しさん (アウアウウー Sac5-L3CR)
2019/04/08(月) 10:58:04.07ID:czvLDSaVa はい
22デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/08(月) 20:38:05.96ID:j+rCFaIP0 fprintf_s みたいな
foo_s 系の関数実装って増えてるん?
「Visual C++ でガッコウのコードがコンパイルできない」みたいな話をたまに見かけるけど…
foo_s 系の関数実装って増えてるん?
「Visual C++ でガッコウのコードがコンパイルできない」みたいな話をたまに見かけるけど…
23デフォルトの名無しさん (ワッチョイ 7d02-w1lf)
2019/04/08(月) 20:55:25.55ID:26lZNeBT0 セキュリティの為にfoo_sが推奨されてるんだから、ガッコウのコードの方を変えるべきでは?
何年経ったと思ってるんだ。
何年経ったと思ってるんだ。
>>22
その s 系とかいうやつは、いまいち気に要らない仕様でいちいち頭に来るので私は使わないです
その s 系とかいうやつは、いまいち気に要らない仕様でいちいち頭に来るので私は使わないです
25はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/08(月) 21:17:15.17ID:TICLg0mt0 >>25
Microsoft のコンパイラ以外では使えない、と聞いているのも納得がいかないのです、本当によいものなら、なぜ _s 系が移植されないのでしょうか…
Microsoft のコンパイラ以外では使えない、と聞いているのも納得がいかないのです、本当によいものなら、なぜ _s 系が移植されないのでしょうか…
27はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/08(月) 22:21:13.00ID:TICLg0mt029はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/08(月) 22:35:39.51ID:TICLg0mt0 >>28
_s 系の関数はオプショナルとは言えども規格にある存在なので、
Visual C++ は例のひとつとして挙がっているにすぎません。
間違いなくありがちな問題を軽減しますので、
使える処理系ならば使うように誘導するのは合理的です。
_s 系の関数はオプショナルとは言えども規格にある存在なので、
Visual C++ は例のひとつとして挙がっているにすぎません。
間違いなくありがちな問題を軽減しますので、
使える処理系ならば使うように誘導するのは合理的です。
31デフォルトの名無しさん (ワッチョイ 698f-JThg)
2019/04/08(月) 23:30:36.72ID:dk5yj0CN0 visual studioで新しいプロジェクトを作成して始めてビルドする度に
/D _CRT_SECURE_NO_WARNINGS
に誘導されてます……
/D _CRT_SECURE_NO_WARNINGS
に誘導されてます……
32デフォルトの名無しさん (アウアウカー Sa09-f9KT)
2019/04/08(月) 23:46:29.39ID:Z7UT2eMea localtime_s 使ったら内部でmutex使ってて無茶苦茶遅いのはむかついた
33デフォルトの名無しさん (アウアウカー Sa09-f9KT)
2019/04/08(月) 23:48:18.87ID:Z7UT2eMea34デフォルトの名無しさん (ワッチョイ 698f-JThg)
2019/04/08(月) 23:50:57.39ID:dk5yj0CN0 localtimeについては批判できねぇ。
マルチスレッドでlocaltime呼び出してたせいで正体不明のバグに数日間悩まされたからな。。。
マルチスレッドでlocaltime呼び出してたせいで正体不明のバグに数日間悩まされたからな。。。
35はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/09(火) 03:49:52.59ID:jYkGM3GN0 >>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
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デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/09(火) 07:47:37.12ID:lax+sHP3037デフォルトの名無しさん (ワッチョイ 698f-JThg)
2019/04/09(火) 07:52:30.47ID:vvoqC9qD038デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/09(火) 09:52:53.37ID:EB2iO7oh039デフォルトの名無しさん (ワッチョイ ee63-k8NZ)
2019/04/09(火) 09:56:13.65ID:A5vZx8Gh040デフォルトの名無しさん (スッップ Sda2-JThg)
2019/04/09(火) 10:28:57.92ID:AXiDgdzZd 話それちゃうよ?
41デフォルトの名無しさん (アウアウウー Sac5-T5wd)
2019/04/09(火) 13:13:25.92ID:xq+Mg1lAa 漢なら localtime_r()
42デフォルトの名無しさん (スッップ Sda2-JThg)
2019/04/09(火) 13:25:42.77ID:AXiDgdzZd 真の漢なら
#ifdef _win32
localtime_s()
#else
localtime_r()
#endif
#ifdef _win32
localtime_s()
#else
localtime_r()
#endif
43はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/09(火) 13:27:54.07ID:jYkGM3GN0 >>42
__STDC_LIB_EXT1__ を使った方がポータブルじゃない?
__STDC_LIB_EXT1__ を使った方がポータブルじゃない?
44デフォルトの名無しさん (スッップ Sda2-JThg)
2019/04/09(火) 13:29:27.93ID:AXiDgdzZd >>43
先生、それはなんですか?
先生、それはなんですか?
46デフォルトの名無しさん (ワッチョイ 6969-p3R9)
2019/04/09(火) 16:29:41.88ID:obpichI70 C11 以降か…
47デフォルトの名無しさん (スッップ Sda2-JThg)
2019/04/09(火) 18:39:32.35ID:AXiDgdzZd >>43
ググってヒットした件数的にこんなん使えませんわ。
ググってヒットした件数的にこんなん使えませんわ。
48はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/09(火) 19:07:14.53ID:jYkGM3GN0 >>47
件数じゃなくて、用途に対する妥当性で考えてよ
件数じゃなくて、用途に対する妥当性で考えてよ
49デフォルトの名無しさん (スッップ Sda2-JThg)
2019/04/09(火) 21:04:38.62ID:AXiDgdzZd 質問スレっぽいスレタイなのにそこまで考えさせられるのかよw
あんまり使われてないっぽいものは使わないってスタンスは崩さないよ、俺は。
あんまり使われてないっぽいものは使わないってスタンスは崩さないよ、俺は。
50デフォルトの名無しさん (ワッチョイ 5152-iMOx)
2019/04/09(火) 21:11:11.26ID:e3amBytd0 使われてないものは使わない
つまりC言語自体・・・(ボソッ
つまりC言語自体・・・(ボソッ
51デフォルトの名無しさん (スッップ Sda2-JThg)
2019/04/09(火) 21:27:21.27ID:AXiDgdzZd 言語を自分で選べるほど偉くないんですよ
>>33
実は K&R2 のみが正義、K&R2 こそ必要にしてかつ十分、という立場なので、そんな私が C99 を推挙した時点で、すでにして大幅に compromise しているつもりなのでした…
実は K&R2 のみが正義、K&R2 こそ必要にしてかつ十分、という立場なので、そんな私が C99 を推挙した時点で、すでにして大幅に compromise しているつもりなのでした…
54デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/09(火) 21:55:42.64ID:EB2iO7oh0 K&R2って妥協の産物だろ
K&R1こそ原理主義者の拠り所だ
K&R1こそ原理主義者の拠り所だ
55はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/09(火) 22:05:25.20ID:jYkGM3GN0 でもまあ JIS の最新は C99 相当だしな。
英語を読むのはしんどいし、
日本語の資料があるなら日本語の方がいいわ。
英語を読むのはしんどいし、
日本語の資料があるなら日本語の方がいいわ。
>>54
>K&R2って妥協の産物
それも理解できます
K&R2 の最大の改悪部分は「構造体の実体渡しができること」
配列の実体を丸まま関数に渡せないくせに、構造体では出来るって意味わかんない
もしかして
struct S {
int a[65536];
};
とかいう構造体があったら、それを全部スタックに載せるつもりなのか?そういうことをする奴が現れる可能性を考えたのか?と小一時間問い詰めたい気分になりました…
>K&R2って妥協の産物
それも理解できます
K&R2 の最大の改悪部分は「構造体の実体渡しができること」
配列の実体を丸まま関数に渡せないくせに、構造体では出来るって意味わかんない
もしかして
struct S {
int a[65536];
};
とかいう構造体があったら、それを全部スタックに載せるつもりなのか?そういうことをする奴が現れる可能性を考えたのか?と小一時間問い詰めたい気分になりました…
57デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/09(火) 22:31:23.50ID:lax+sHP30 struct S {
long long ago0[1048576*1048576];
long long ago1[1048576*1048576];
long long ago2[1048576*1048576];
long long ago3[1048576*1048576];
};
long long ago0[1048576*1048576];
long long ago1[1048576*1048576];
long long ago2[1048576*1048576];
long long ago3[1048576*1048576];
};
58デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/09(火) 22:32:15.47ID:KCu43/3wa59デフォルトの名無しさん (ワッチョイ ee63-k8NZ)
2019/04/09(火) 22:45:54.00ID:A5vZx8Gh0 >>54
K&R1原理主義って、素敵?
K&R1原理主義って、素敵?
60デフォルトの名無しさん (ワッチョイ 2e12-bgjH)
2019/04/09(火) 22:48:12.12ID:PvJWb3nJ0 in a galaxy far,
far away...
far away...
61デフォルトの名無しさん (ワッチョイ ee63-k8NZ)
2019/04/09(火) 23:05:49.72ID:A5vZx8Gh0 /* not reach here outside the universe */
62デフォルトの名無しさん (ワッチョイ 5152-iMOx)
2019/04/10(水) 01:12:36.88ID:sw3hAH5+0 jedi = get_force();
>>58
構造体といえどもアドレスを渡すのが真に正しく、配列なら言語仕様でそれを強要される、なぜ構造体には甘い顔を見せる必要があるのか?
構造体といえどもアドレスを渡すのが真に正しく、配列なら言語仕様でそれを強要される、なぜ構造体には甘い顔を見せる必要があるのか?
64はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-k8NZ)
2019/04/10(水) 04:59:47.74ID:mOo8C1VR065デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 06:18:28.03ID:qyNiIlQC0 >>63
ド素人の勝手な推測だけれども
「配列だとマジでサイズどんだけか分かったもんじゃないじゃん」
「構造体のメンバ」に配列が来る場合はあるけど、そのサイズは多寡が知れてるじゃん」
という考えかもアリかもしんない
ド素人の勝手な推測だけれども
「配列だとマジでサイズどんだけか分かったもんじゃないじゃん」
「構造体のメンバ」に配列が来る場合はあるけど、そのサイズは多寡が知れてるじゃん」
という考えかもアリかもしんない
66デフォルトの名無しさん (ドコグロ MM4a-xk87)
2019/04/10(水) 06:47:52.31ID:bjp/36w+M むしろ勝手にアドレス渡しになる配列が甘やかされすぎ
文字列がcharの配列だからしょうがないけど
文字列がcharの配列だからしょうがないけど
67デフォルトの名無しさん (アークセー Sx91-L3CR)
2019/04/10(水) 07:49:55.31ID:PtgOSD4Jx 配列の実引数をポインタ仮引数で受けれるという仕様上、配列のサイズ情報が失われコンパイラは何バイトコピーすれば良いか分からないから致し方ない。
68デフォルトの名無しさん (アウアウウー Sac5-T5wd)
2019/04/10(水) 09:42:54.83ID:G/tPYfHxa >>56
昔々初心者の頃にやっちゃって物凄く遅くなって気づいた事があったw
昔々初心者の頃にやっちゃって物凄く遅くなって気づいた事があったw
69デフォルトの名無しさん (アウアウウー Sac5-T5wd)
2019/04/10(水) 09:49:26.10ID:G/tPYfHxa 構造体も const で渡されたらこっそりポインタ使って読むだけのアクセスするコード作っちゃっても良いのにな。
マルチスレッドで動くプログラムの時に死ぬかも知れんが。
マルチスレッドで動くプログラムの時に死ぬかも知れんが。
70デフォルトの名無しさん (アウアウカー Sa09-f9KT)
2019/04/10(水) 10:06:17.49ID:QqefTxrga そもそも[]が無ければ誤解も減ったと思うよ
いい年した大人が、引数で渡ってきた配列の sizeof 取ろうとするの良く見るぜ
いい年した大人が、引数で渡ってきた配列の sizeof 取ろうとするの良く見るぜ
71デフォルトの名無しさん (ワッチョイ 02a5-lO4n)
2019/04/10(水) 10:42:39.87ID:ryP68qDF0 現代教えられてる言語で60年代中期の古さを引きずってる言語だからだ
配列に対してsize適用すれば長さを取れるのは現代じゃあ普通で、
取れないC言語のほうがおかしい、
これ、誤解でも何でもないからな
配列に対してsize適用すれば長さを取れるのは現代じゃあ普通で、
取れないC言語のほうがおかしい、
これ、誤解でも何でもないからな
72デフォルトの名無しさん (ワッチョイ a278-l+U4)
2019/04/10(水) 10:46:50.33ID:Y6MOlOQR0 sizeofで取れるのは要素数じゃないけどな
73デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 11:14:25.33ID:9YALwuYf074デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 11:16:06.57ID:9YALwuYf075デフォルトの名無しさん (アウアウウー Sac5-T5wd)
2019/04/10(水) 11:23:36.81ID:7gi5m8N9a そして「C言語はおかしい」と満場一致で結論が出て、また新たな言語が作られるのであった。
完
完
76デフォルトの名無しさん (ワッチョイ 7d02-w1lf)
2019/04/10(水) 11:25:19.17ID:lv7m7vwC0 ここが変だよC言語って本が昔売られてたな。。。
77デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 12:05:09.58ID:JKE/90g3a >>73
俺は安全のために実体渡すし返すよ、割と
俺は安全のために実体渡すし返すよ、割と
78デフォルトの名無しさん (ドコグロ MM4a-xk87)
2019/04/10(水) 12:29:04.23ID:bjp/36w+M79デフォルトの名無しさん (ワッチョイ 7e7c-k8NZ)
2019/04/10(水) 14:02:32.11ID:pgm3XBSH0 不定と未定義がある限り、C言語はおかしくあり続けるのだ。
80デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 14:28:30.84ID:qyNiIlQC0 >>77
仮引数にconstはダメ?
仮引数にconstはダメ?
81デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 14:46:53.80ID:9YALwuYf0 >>77
const使わんの? ・・・て、先に誰か言ってるな
const使わんの? ・・・て、先に誰か言ってるな
82デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 14:49:44.54ID:9YALwuYf083デフォルトの名無しさん (ワッチョイ 6969-p3R9)
2019/04/10(水) 14:51:22.98ID:hStfijf/0 by val と by ref でうあぁぁぁ
84デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 15:21:31.93ID:Y9aQW1ZLa85デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 15:49:26.74ID:qyNiIlQC0 >>84
付けられないときってどんなときでしょう
付けられないときってどんなときでしょう
86デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 15:56:55.75ID:9YALwuYf087デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 16:15:30.28ID:Y9aQW1ZLa >>86
変更しようがしまいが、意図があろうがなかろうが、コンテクストを分けるためですよ。
変更しようがしまいが、意図があろうがなかろうが、コンテクストを分けるためですよ。
88デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 16:36:22.97ID:9YALwuYf0 >>87
へー、じゃあ関数を呼び出すたびごとにプロセス生成とかすんの?
へー、じゃあ関数を呼び出すたびごとにプロセス生成とかすんの?
89デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 16:51:52.86ID:Y9aQW1ZLa90デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 16:58:14.51ID:9YALwuYf091デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 17:08:01.10ID:Y9aQW1ZLa92デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 17:12:08.62ID:9YALwuYf093デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 17:16:15.00ID:Y9aQW1ZLa >>92
そんなもん、密結合・低凝集を実現する目的でしか役に立たんからですよ。
そんなもん、密結合・低凝集を実現する目的でしか役に立たんからですよ。
94デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 17:18:23.20ID:9YALwuYf095デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 17:20:34.39ID:qyNiIlQC0 記憶領域確保に失敗したとき
落ちないように頑張ってくれるのと
即落ちるのと
どっちがどうだったか忘れた
最近読んだどっかに書いてあった筈だけど思い出せん…
x86 限定で良いので挙動とコーディングの関係に心当たりのある方御教示ねがいます。。。
落ちないように頑張ってくれるのと
即落ちるのと
どっちがどうだったか忘れた
最近読んだどっかに書いてあった筈だけど思い出せん…
x86 限定で良いので挙動とコーディングの関係に心当たりのある方御教示ねがいます。。。
96デフォルトの名無しさん (ワッチョイ 9dca-iMOx)
2019/04/10(水) 17:34:07.04ID:VhJLBw5p0 こんな便所みたいなところでばっちばちでワロタ
97デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 17:36:28.06ID:Y9aQW1ZLa >>94
そうそう、だからポインタを使わないのがいいね
そうそう、だからポインタを使わないのがいいね
98デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 17:39:25.15ID:Y9aQW1ZLa 構造体に限った話でもないが、グローバル変数のポインタが引数として渡され、更にそういう関数が多段に続いたコードとか地獄だよ。
誰かが止めねばならんよ。
誰かが止めねばならんよ。
99デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 17:44:54.12ID:9YALwuYf0100デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 17:46:05.16ID:9YALwuYf0101デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 17:48:27.03ID:Y9aQW1ZLa >>100
マジ意味わからん
マジ意味わからん
102デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 17:52:02.02ID:9YALwuYf0 >>101=97
二度も言わなくていいよ
二度も言わなくていいよ
103デフォルトの名無しさん (アウアウカー Sa09-f9KT)
2019/04/10(水) 18:00:58.67ID:9QKNNv28a >>102
いや、100の解説してくれや
いや、100の解説してくれや
104デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 18:05:19.14ID:9YALwuYf0 >>103
#include <stdio.h>
int x, y;
int main(void)
{
scanf("%d", &x);
scanf("%d", &y);
return 0;
}
暗黙にxに書き込む関数とscanfは
どっちが汎用性が高いか
どっちが見通しがいいか
考えてみな
#include <stdio.h>
int x, y;
int main(void)
{
scanf("%d", &x);
scanf("%d", &y);
return 0;
}
暗黙にxに書き込む関数とscanfは
どっちが汎用性が高いか
どっちが見通しがいいか
考えてみな
105デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 18:07:33.40ID:Y9aQW1ZLa >>104
xとyを比較したらええんか?
xとyを比較したらええんか?
106デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 18:09:36.68ID:9YALwuYf0107デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 18:17:20.49ID:9YALwuYf0 俺はいま103に説明しているんだ
108デフォルトの名無しさん (アウアウカー Sa09-f9KT)
2019/04/10(水) 18:41:36.83ID:BTPtEuL0a いや、同一人物だぞ
109デフォルトの名無しさん (ワッチョイ 8201-xk87)
2019/04/10(水) 19:37:58.47ID:WZ2DAnxG0 >>82でイミフなこと言ってるなって思ったら単なる基地外やんw
110デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 20:25:42.75ID:qyNiIlQC0 結局「constを仮引数に使えないとき」というのがどんなときなのが全く分からず
「規格通りに書いてはならない」ケースが実在したのかしら
「規格通りに書いてはならない」ケースが実在したのかしら
111デフォルトの名無しさん (アウアウエー Sa8a-f9KT)
2019/04/10(水) 20:33:10.76ID:Y9aQW1ZLa >>110
え、毎回書いてるの?
え、毎回書いてるの?
112デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 21:26:31.69ID:qyNiIlQC0 いや
仕事で使ってませんから
そもそも「毎回」っていうほど書いてませんし
何らかのツールで勝手に入るので「敢えて書く必要性がない」ということなのでしょうか
それとも一律に「書くな」というルールが定着している組織が実在しているのでしょうか
仕事で使ってませんから
そもそも「毎回」っていうほど書いてませんし
何らかのツールで勝手に入るので「敢えて書く必要性がない」ということなのでしょうか
それとも一律に「書くな」というルールが定着している組織が実在しているのでしょうか
113デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 21:33:55.83ID:9YALwuYf0114デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 21:37:03.36ID:qyNiIlQC0 >>104 にて
scanf("%d", &x);
と書かれているのですが、ターミナルから9を80字入力されたらどうなさるおつもりなのでしょうか
また、signedともunsignedとも指定されておりませんが、その点はどのように汎用性を確保なさるのでしょうか
scanf("%d", &x);
と書かれているのですが、ターミナルから9を80字入力されたらどうなさるおつもりなのでしょうか
また、signedともunsignedとも指定されておりませんが、その点はどのように汎用性を確保なさるのでしょうか
115デフォルトの名無しさん (ワッチョイ 912d-iMOx)
2019/04/10(水) 21:55:23.88ID:9YALwuYf0 >>114
俺に聞くな、規格票を嫁
http://kikakurui.com/x3/X3010-2003-01.html
104のコードが規格厳密合致プログラム(strictly conforming program)であることのみここに宣言する
この命題を反証されたら、潔く敗北を認める
では貴殿の返答を待つ
俺に聞くな、規格票を嫁
http://kikakurui.com/x3/X3010-2003-01.html
104のコードが規格厳密合致プログラム(strictly conforming program)であることのみここに宣言する
この命題を反証されたら、潔く敗北を認める
では貴殿の返答を待つ
116さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b901-6gO7)
2019/04/10(水) 21:59:49.17ID:QzOhMry80 intだけだったらsigned intになるっしょ。
近代的な環境なら、正しく書式を設定すればscanfはオーバーフローしない。
近代的な環境なら、正しく書式を設定すればscanfはオーバーフローしない。
117さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b901-6gO7)
2019/04/10(水) 22:19:22.09ID:QzOhMry80 shortはsigned short、
longはsigned longだが、
charはコンパイラの設定によりsignedにもunsignedにもなる。普通はsignedだがな。
longはsigned longだが、
charはコンパイラの設定によりsignedにもunsignedにもなる。普通はsignedだがな。
118デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 23:14:07.61ID:qyNiIlQC0119デフォルトの名無しさん (ワッチョイ ee8f-hWz0)
2019/04/10(水) 23:41:09.21ID:qyNiIlQC0 "shall" の訳文に、筆者の苦悩のようなものが見受けられました
その点ふくめ、私は知らないことが非常に多いようで、ご迷惑をおかけしました
その点ふくめ、私は知らないことが非常に多いようで、ご迷惑をおかけしました
122デフォルトの名無しさん (ワッチョイ 8b8f-ofH2)
2019/04/11(木) 00:04:19.55ID:SPJO7XdY0 >>121
> 例文:You shall die.
> 超訳:「死ね!」
さすがにそれは…
日本語の文章の方に "shall" は書かれてなかったもんで把握、と
示唆したつもりだったのですが、通じなかったようで、表現力につき反省する所しきりであります
> 例文:You shall die.
> 超訳:「死ね!」
さすがにそれは…
日本語の文章の方に "shall" は書かれてなかったもんで把握、と
示唆したつもりだったのですが、通じなかったようで、表現力につき反省する所しきりであります
123デフォルトの名無しさん (ワッチョイ d901-LJPv)
2019/04/11(木) 00:44:10.66ID:Nah1Abkj0 I shall return 0.
124デフォルトの名無しさん (ワッチョイ fb02-XGqV)
2019/04/11(木) 01:53:26.52ID:5ienNbe20 *'``・* 。
| `*。
,。∩彡⌒ミ * みんなハゲにな〜れ
+ (´・ω・`) *。+゚
`*。 ヽ、 つ *゚*
`・+。*・' ゚⊃ +゚
☆ ∪~ 。*゚
`・+。*・ ゚
| `*。
,。∩彡⌒ミ * みんなハゲにな〜れ
+ (´・ω・`) *。+゚
`*。 ヽ、 つ *゚*
`・+。*・' ゚⊃ +゚
☆ ∪~ 。*゚
`・+。*・ ゚
125デフォルトの名無しさん (ワッチョイ 392d-XGqV)
2019/04/11(木) 07:54:50.71ID:YCq7KtVA0 >>118
4. 規格合致性
規格厳密合致プログラム(strictly conforming program)は,この規格で規定する言語機能及びライブラリ
だけを使用しなければならない(2)。さらに,いかなる未規定の動作,未定義の動作又は処理系定義の動作に依存する出力も生成してはならず,しかもどのような最低限の処理系限界も超えてはならない。
(2)規格厳密合致プログラムは,どの処理系でもサポートしているわけではない機能(附属書 F の中に例
がある。)を使うことができる。ただし,その機能を使うことができるのは,それが適切なマクロをもつ#ifdef 指令とそれに対応する#endif 指令とに囲まれている場合に限る。次に示すプログラム片がその例である。
#ifdef _ _STDC_IEC_559_ _ /* FE_UPWARD
が定義されている */
/* ... */
fesetround(FE_UPWARD);
/*
... */
#endif
4. 規格合致性
規格厳密合致プログラム(strictly conforming program)は,この規格で規定する言語機能及びライブラリ
だけを使用しなければならない(2)。さらに,いかなる未規定の動作,未定義の動作又は処理系定義の動作に依存する出力も生成してはならず,しかもどのような最低限の処理系限界も超えてはならない。
(2)規格厳密合致プログラムは,どの処理系でもサポートしているわけではない機能(附属書 F の中に例
がある。)を使うことができる。ただし,その機能を使うことができるのは,それが適切なマクロをもつ#ifdef 指令とそれに対応する#endif 指令とに囲まれている場合に限る。次に示すプログラム片がその例である。
#ifdef _ _STDC_IEC_559_ _ /* FE_UPWARD
が定義されている */
/* ... */
fesetround(FE_UPWARD);
/*
... */
#endif
126デフォルトの名無しさん (ワッチョイ 2969-5LTE)
2019/04/11(木) 09:09:31.46ID:AbBe4c020 RFCなんかである要請の強度( MUST SHALL MAY ) みたいに使う用語の縛りはない?
>>122
あくまで私見ですが、現代英語では will に単純に置き換えられるような shall の使い方はもうありえなく、
shall を使うのは shall を使う必然性があるから、だから、shall は辞書でいうところの「意志未来」であり、したがって shall を訳出しないのは不誠実な訳だとどうしても私は感じてしまいます…
あくまで私見ですが、現代英語では will に単純に置き換えられるような shall の使い方はもうありえなく、
shall を使うのは shall を使う必然性があるから、だから、shall は辞書でいうところの「意志未来」であり、したがって shall を訳出しないのは不誠実な訳だとどうしても私は感じてしまいます…
128デフォルトの名無しさん (ワッチョイ 8b8f-ofH2)
2019/04/11(木) 21:23:32.90ID:SPJO7XdY0 「英文読解」の場ではなかったので控えていたのですが
>>127
個人的には「こんなのを訳出させられた人は凄い」と思ってます
「原典は英語で日本語訳がある」もので「日本語訳が意味不明」の場合
原典で確認すると「訳出で明確ではない」部分が確認できるケースが多々あります
"shall" をどのように訳出するかは個人差ありますし
今回の箇所が「以前同じ文言があったので単純にコピペした」ものかどうかは確認していません
もちろん>>126さんが仰るように「強度の要請で助動詞を変える」ものもありえますが
C99の文書の場合は丁寧に "shall" の定義から書かれていますし、
何より "strictly conforming program" という表現は、明確に 4.5 での新情報です
>>127
個人的には「こんなのを訳出させられた人は凄い」と思ってます
「原典は英語で日本語訳がある」もので「日本語訳が意味不明」の場合
原典で確認すると「訳出で明確ではない」部分が確認できるケースが多々あります
"shall" をどのように訳出するかは個人差ありますし
今回の箇所が「以前同じ文言があったので単純にコピペした」ものかどうかは確認していません
もちろん>>126さんが仰るように「強度の要請で助動詞を変える」ものもありえますが
C99の文書の場合は丁寧に "shall" の定義から書かれていますし、
何より "strictly conforming program" という表現は、明確に 4.5 での新情報です
129デフォルトの名無しさん (トンモー MM4d-Ouf2)
2019/04/13(土) 04:36:48.17ID:/Uq84pFNM 昔の話。
若い頃K&Rの日本語版を買ってきて読み始めて、
間違いというか
サンプルとしてよろしくない
ところを見つけていた。
それが7年後に役立って
沢山仕事が入ってくるようになった。
本はキチンと読みましょう!
若い頃K&Rの日本語版を買ってきて読み始めて、
間違いというか
サンプルとしてよろしくない
ところを見つけていた。
それが7年後に役立って
沢山仕事が入ってくるようになった。
本はキチンと読みましょう!
130デフォルトの名無しさん (ワッチョイ 298f-Glgm)
2019/04/13(土) 12:55:05.18ID:hvrKDDfY0131デフォルトの名無しさん (ササクッテロ Sp85-Sq8Y)
2019/04/14(日) 04:54:50.50ID:jIyXk5jhp You shall die.
日本語の古語にすると分かりやすい
汝死すべし
shallはべしに近い
日本語の古語にすると分かりやすい
汝死すべし
shallはべしに近い
>>131
「べし」が二人称主語のときは「当然〜するべき」「義務」をあらわすことが多いですね
ただしこの場合も、主観的な意見の場合・客観的な義務の場合の両方がありうるかもしれません
shall=べき、べし、というのはいい線いっていると思います
「べし」が二人称主語のときは「当然〜するべき」「義務」をあらわすことが多いですね
ただしこの場合も、主観的な意見の場合・客観的な義務の場合の両方がありうるかもしれません
shall=べき、べし、というのはいい線いっていると思います
133デフォルトの名無しさん (ワッチョイ 597b-/1Ht)
2019/04/14(日) 06:22:08.07ID:JgI3yl/w0 日常会話や文学なら "You shall die." を「汝死すべし」と訳して
原文のもつ「お前死んだ方がいいよ」と「お前はいつか死ぬであろう」の
両方のニュアンス(他の解釈もあるかも)を残すってのはアリだと思うけど、
技術的な文章では、複数の意味に取れる書き方はしないでしょ。
翻訳の読者が欲しい情報も、原文がどちらを意図してるのか、だろうし。
原文のもつ「お前死んだ方がいいよ」と「お前はいつか死ぬであろう」の
両方のニュアンス(他の解釈もあるかも)を残すってのはアリだと思うけど、
技術的な文章では、複数の意味に取れる書き方はしないでしょ。
翻訳の読者が欲しい情報も、原文がどちらを意図してるのか、だろうし。
134デフォルトの名無しさん (ワッチョイ 39ab-FipA)
2019/04/14(日) 06:41:56.55ID:Sc1FWDft0 shall
〜するものとする。
〜するものとする。
135デフォルトの名無しさん (ワッチョイ 1301-EjgJ)
2019/04/14(日) 08:56:50.49ID:/sR0LrTu0 ISO9001の要求事項とか見たことないのか?
Shall: しなければいけない
Should: した方が良い
って訳すのは常識だぞ
Shall: しなければいけない
Should: した方が良い
って訳すのは常識だぞ
137デフォルトの名無しさん (ワッチョイ b952-XGqV)
2019/04/14(日) 09:43:00.26ID:zcg/ytHt0 英会話スレ
138デフォルトの名無しさん (ワッチョイ 298f-Glgm)
2019/04/14(日) 09:54:03.65ID:/V8zrPr00 一年程度だが海外で仕事した経験のある俺にコメントさせてくれ。
shallにとくに意味はない。日本語に訳すのは難しいが方向性でいえば
汝死ぬ(shallなし)
↓
汝はねぇ死ぬよ(shallあり)
かな。
つまり特に意味はない。特に強調してるわけでもないけど、つまり断定か。
shallにとくに意味はない。日本語に訳すのは難しいが方向性でいえば
汝死ぬ(shallなし)
↓
汝はねぇ死ぬよ(shallあり)
かな。
つまり特に意味はない。特に強調してるわけでもないけど、つまり断定か。
139デフォルトの名無しさん (ワッチョイ b952-XGqV)
2019/04/14(日) 10:09:12.15ID:zcg/ytHt0 余計分かりにくい
140デフォルトの名無しさん (ワッチョイ 1301-EjgJ)
2019/04/14(日) 10:38:07.79ID:/sR0LrTu0142デフォルトの名無しさん (ワッチョイ 298f-Glgm)
2019/04/14(日) 11:15:43.43ID:/V8zrPr00 いや、ほんとに意味はないんだよ。書き手がなんか気持ち悪いからshallつけてるだけでshall抜きでもかわらん。
willとかshouldに比べてshallどうとかじゃなくて、willとかshouldがなかったらどうかを考えるべき。
willとかshouldに比べてshallどうとかじゃなくて、willとかshouldがなかったらどうかを考えるべき。
143デフォルトの名無しさん (ワッチョイ 695f-26O/)
2019/04/14(日) 11:36:05.15ID:xBNIHV910 そもそも他言語を日本語で正確に訳せるってのは幻想でしかないから
規格でshallやshall notについて扱いが明記されてる(C11なら4.1〜4.2)以上それが全てでしょ
規格でshallやshall notについて扱いが明記されてる(C11なら4.1〜4.2)以上それが全てでしょ
144デフォルトの名無しさん (ドコグロ MMbd-EjgJ)
2019/04/14(日) 11:56:00.83ID:CLAWTkIiM145デフォルトの名無しさん (ワッチョイ 818f-ofH2)
2019/04/14(日) 12:01:14.41ID:El+pt49w0 >>128
> 「英文読解」の場ではなかったので控えていたのですが
(中略)
> C99の文書の場合は丁寧に "shall" の定義から書かれています
これ以上、「C言語のスレ」として、どんな話題あるんですか
「ANSI C(なりC90なり)」「C95」「C11」を持ち出すなら意味があるかも知れませんが?
> 「英文読解」の場ではなかったので控えていたのですが
(中略)
> C99の文書の場合は丁寧に "shall" の定義から書かれています
これ以上、「C言語のスレ」として、どんな話題あるんですか
「ANSI C(なりC90なり)」「C95」「C11」を持ち出すなら意味があるかも知れませんが?
146デフォルトの名無しさん (ワッチョイ 695f-26O/)
2019/04/14(日) 12:28:26.87ID:xBNIHV910 あと、そんなに辞書が好きならshallに「(法律・商業)〜(すべき)である, 〜(するもの)とする, 〜のこと」ってあるからそれが一番近いと思うよ
>>144
その百人一首の上の句と下の句をつなげるように日本語と英語の一対一対応を増やしていくスタイルは、カルタが少ないうちはいいけれども腐るほど多くなったときに困りませんか?
でも、最終的には慣れればなれるほど自動的に丸暗記になるのだろうから(私も「you shall die =死ね」状態なのは事実)、語学に理屈付けは不要なのかもしれませんね…
その百人一首の上の句と下の句をつなげるように日本語と英語の一対一対応を増やしていくスタイルは、カルタが少ないうちはいいけれども腐るほど多くなったときに困りませんか?
でも、最終的には慣れればなれるほど自動的に丸暗記になるのだろうから(私も「you shall die =死ね」状態なのは事実)、語学に理屈付けは不要なのかもしれませんね…
148デフォルトの名無しさん (ワッチョイ 115f-XGqV)
2019/04/17(水) 17:36:41.54ID:LDzja3MF0 C95って何?
ああAMD1のことか、一瞬ぎくっとした
しかしあの文脈では、それを言うならC99だろ
ああAMD1のことか、一瞬ぎくっとした
しかしあの文脈では、それを言うならC99だろ
149デフォルトの名無しさん (アウアウウー Sa5d-clLQ)
2019/04/17(水) 19:18:17.08ID:xaCKxF64a C言語で、配列を渡すときは&付けなくていいとありましたが
scanf("%c", &array[i][j]);
このときに&つけなならんのはなんでですか
cだとつけるのか二次元配列だとつけなきゃならないのか(根本的にわかってないかも)
そこら変詳しくおしえてもらえませんか
scanf("%c", &array[i][j]);
このときに&つけなならんのはなんでですか
cだとつけるのか二次元配列だとつけなきゃならないのか(根本的にわかってないかも)
そこら変詳しくおしえてもらえませんか
150はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7b3e-clLQ)
2019/04/17(水) 19:46:08.34ID:UWuCQ9XR0 >>149
配列は、条件を満たしたとき (というより条件を満たす場合の方が多いのだが……) にその先頭要素を指すポインタに型変換されるという特殊ルールがあるから。
配列 array を単に array と書いた場合には、 &array[0] に読み替えられると考えてもいい。
配列 array に & を付けて &array と書いた場合は「配列を指すポインタ」であって、「配列の先頭要素を指すポインタ」ではないことにも注意が要る。 (型が違う)
そのあたりのルールは歴史的経緯があってややこしいんだけど、この規則がないとそれはそれで記述がぐちゃぐちゃになるんでな……。
配列は、条件を満たしたとき (というより条件を満たす場合の方が多いのだが……) にその先頭要素を指すポインタに型変換されるという特殊ルールがあるから。
配列 array を単に array と書いた場合には、 &array[0] に読み替えられると考えてもいい。
配列 array に & を付けて &array と書いた場合は「配列を指すポインタ」であって、「配列の先頭要素を指すポインタ」ではないことにも注意が要る。 (型が違う)
そのあたりのルールは歴史的経緯があってややこしいんだけど、この規則がないとそれはそれで記述がぐちゃぐちゃになるんでな……。
151デフォルトの名無しさん (ワッチョイ 09da-La48)
2019/04/17(水) 20:36:55.41ID:VoxdaNRv0152デフォルトの名無しさん (ワッチョイ 115f-XGqV)
2019/04/17(水) 23:51:24.14ID:LDzja3MF0 >>149
[]は、配列を、配列でなくす(要素にする)演算子だからだ
[]は、配列を、配列でなくす(要素にする)演算子だからだ
153デフォルトの名無しさん (ワッチョイ 0901-Ce13)
2019/04/18(木) 04:53:03.15ID:3hgPbfMt0 文字列とscanf
154デフォルトの名無しさん (ワッチョイ 697b-Xu0i)
2019/04/18(木) 06:35:48.92ID:gmBt4t3M0 文字列(Cでは'\0'終端のchar配列)を格納できる変数 char s[SIZE]; に対して、
文字列を格納したい場合は
scanf("%s", s); // 連続したメモリ領域 s[0], s[1], s[2] ... に格納
配列名 s は &s[0](配列の先頭要素へのポインタ)と、値と型が等しい
1文字だけ格納したい場合は
scanf("%c%c", &[0], &s[1]); // s[0] と s[1] に1字ずつ格納
&s[0] は s と同じだが、 &s[1] との対応から &s[0] と書く方が分かりやすい
「配列名が暗黙に先頭要素へのポインタに変換される」話と、
「何を操作しているかをソースの書き方で明瞭に表現しようぜ」って話と、
整頓されずに混乱してるんじゃないかな。
「Cでは“文字列”とは何か」も絡んでるかも。
それに加えて、2次元配列という、これまたCではやや微妙な問題が噛んでるし。
char array[ROW][COLUMN]; // charの2次元配列
char *array[LINE]; // charへのポインタの1次元配列
>>149 の質問では二次元配列と明記されてるから本質じゃないけど、
説明を厳密にしようとすると、触れないのは片手落ちになっちゃうよね。
& 演算子でアドレスを得るときの内部的な処理の周辺。
文字列を格納したい場合は
scanf("%s", s); // 連続したメモリ領域 s[0], s[1], s[2] ... に格納
配列名 s は &s[0](配列の先頭要素へのポインタ)と、値と型が等しい
1文字だけ格納したい場合は
scanf("%c%c", &[0], &s[1]); // s[0] と s[1] に1字ずつ格納
&s[0] は s と同じだが、 &s[1] との対応から &s[0] と書く方が分かりやすい
「配列名が暗黙に先頭要素へのポインタに変換される」話と、
「何を操作しているかをソースの書き方で明瞭に表現しようぜ」って話と、
整頓されずに混乱してるんじゃないかな。
「Cでは“文字列”とは何か」も絡んでるかも。
それに加えて、2次元配列という、これまたCではやや微妙な問題が噛んでるし。
char array[ROW][COLUMN]; // charの2次元配列
char *array[LINE]; // charへのポインタの1次元配列
>>149 の質問では二次元配列と明記されてるから本質じゃないけど、
説明を厳密にしようとすると、触れないのは片手落ちになっちゃうよね。
& 演算子でアドレスを得るときの内部的な処理の周辺。
155デフォルトの名無しさん (ワッチョイ 555f-YIQo)
2019/04/18(木) 06:48:49.78ID:o0KoJkQh0 &[0]なんて構文ねえよ
よりにもよって、そんなとこtypoしちまったら致命傷だろうが
よりにもよって、そんなとこtypoしちまったら致命傷だろうが
156154 (ワッチョイ 697b-Xu0i)
2019/04/18(木) 07:30:33.11ID:gmBt4t3M0 ありゃ本当だ。&[0] は誤りだね。ご指摘ありがとう。
誤: scanf("%c%c", &[0], &s[1]); // s[0] と s[1] に1字ずつ格納
正: scanf("%c%c", &s[0], &s[1]); // s[0] と s[1] に1字ずつ格納
誤: scanf("%c%c", &[0], &s[1]); // s[0] と s[1] に1字ずつ格納
正: scanf("%c%c", &s[0], &s[1]); // s[0] と s[1] に1字ずつ格納
157デフォルトの名無しさん (ワッチョイ d952-YIQo)
2019/04/19(金) 12:12:59.76ID:Nwj37sNi0 C言語ってarray[3]だけじゃなくて3[array]もできるんだね
[]が演算子って今更知った
[]が演算子って今更知った
158はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f63e-JNgg)
2019/04/19(金) 12:21:05.01ID:mypEidUJ0 >>157
array[3] は *(array+3) と等しい、構文糖であるということになっているので結果的にそうなった。
array[3] は *(array+3) と等しい、構文糖であるということになっているので結果的にそうなった。
159デフォルトの名無しさん (アウアウウー Sacd-kBNU)
2019/04/19(金) 12:39:59.72ID:U46FCs4Qa かといってそんな書き方してるプログラムはサンプルプログラム以外では見たことがない。
160デフォルトの名無しさん (ワッチョイ 193f-YIQo)
2019/04/19(金) 12:58:54.90ID:8C7kRl9M0161デフォルトの名無しさん (スップ Sd12-fGro)
2019/04/19(金) 15:31:03.70ID:y1N4KfNld >>157
コレ好き。たまーに混ぜ込んでおいてレビュー担当迷わせるの楽しい。
コレ好き。たまーに混ぜ込んでおいてレビュー担当迷わせるの楽しい。
162デフォルトの名無しさん (オイコラミネオ MM91-cxay)
2019/04/19(金) 16:22:40.20ID:t0MiT6LCM >>161
作法違反で低評価になるだけじゃねw
作法違反で低評価になるだけじゃねw
163デフォルトの名無しさん (ワッチョイ 193f-YIQo)
2019/04/19(金) 16:50:40.06ID:8C7kRl9M0 スキルの使い途を間違えているな
弱い者いじめではなく生産に使え
チーム得点につながらない無駄なことをするやつを
上司は冷ややかに見ているぞ
弱い者いじめではなく生産に使え
チーム得点につながらない無駄なことをするやつを
上司は冷ややかに見ているぞ
164デフォルトの名無しさん (ワッチョイ b18f-fGro)
2019/04/19(金) 17:06:38.82ID:GSI3q7h60 初めて5[a]がOKなんだと知ったときの感動を思い出せ。そんな感動と興奮を仕事に散りばめてくれるエンターテイナーだよ。
165デフォルトの名無しさん (ワッチョイ b18f-fGro)
2019/04/19(金) 17:07:35.94ID:GSI3q7h60 buf[5[buf]]
166デフォルトの名無しさん (ブーイモ MMd5-M3sR)
2019/04/19(金) 19:15:23.29ID:g/tNuT86M Cに配列なんて概念なくて、
配列宣言っぽく見えるのはポインタ宣言とallocaの構文糖だという
言語だったらよかったのに。
配列宣言っぽく見えるのはポインタ宣言とallocaの構文糖だという
言語だったらよかったのに。
167デフォルトの名無しさん (ワッチョイ 193f-YIQo)
2019/04/19(金) 22:01:37.69ID:8C7kRl9M0 いや、それは困る
ポインタが指す先の実体は
いつかどこかで配列になれなきゃ話が発散してしまう
ポインタが指す先の実体は
いつかどこかで配列になれなきゃ話が発散してしまう
168デフォルトの名無しさん (アウアウエー Sada-aFPd)
2019/04/19(金) 22:17:39.05ID:jGjLpvILa だから、これは配列ではないという結論になる
169デフォルトの名無しさん (ワッチョイ a901-HmQt)
2019/04/19(金) 23:18:20.25ID:UowN6RnT0 "0123456789abcdef"[n % 10]
170デフォルトの名無しさん (ワッチョイ 193f-YIQo)
2019/04/19(金) 23:34:23.62ID:8C7kRl9M0 アホ
n % 16だろうが
n % 16だろうが
171デフォルトの名無しさん (ワッチョイ b18f-fGro)
2019/04/20(土) 00:07:20.17ID:WPUlIDDo0 >>169
つよい
つよい
172デフォルトの名無しさん (ワッチョイ 3602-YIQo)
2019/04/20(土) 01:30:17.77ID:2mEBnGIe0 早く配列になりたい
173デフォルトの名無しさん (ワッチョイ 69ad-61/s)
2019/04/20(土) 12:04:07.28ID:adBHY6Cw0 忙しかったものですから、ウルトラ亀レスで申し訳ありません。
もちろんK&Rは良い本だとは思いますが、
よくないところがあると書きましたら、「それどこですか?」
のような質問がきていたのですが、仕事に忙殺されてレスが遅くなりました。
例えば、K&Rのハッシュ探索のプログラム。
ソースを見ればバグがあるとすぐわかるはずです。
K&Rのソースは単なるサンプルです。
仕事で実際に使えるわけではありませんし、
吐き出すハッシュ値をチェックしてみてください。
そのソースをF社の東大卒のプログラマがパッケージに組み込んでしまい、
大きなバグを引き起こしました。
で、俺が呼ばれてソースを見た瞬間に原因がわかって直しました。
K&Rを読んだときに気が付いていたからです。
K&Rを読んだときに、気が付く人はすぐ気が付いていると思います。
自分で考える人です。
本当のプログラマです。
もちろんK&Rは良い本だとは思いますが、
よくないところがあると書きましたら、「それどこですか?」
のような質問がきていたのですが、仕事に忙殺されてレスが遅くなりました。
例えば、K&Rのハッシュ探索のプログラム。
ソースを見ればバグがあるとすぐわかるはずです。
K&Rのソースは単なるサンプルです。
仕事で実際に使えるわけではありませんし、
吐き出すハッシュ値をチェックしてみてください。
そのソースをF社の東大卒のプログラマがパッケージに組み込んでしまい、
大きなバグを引き起こしました。
で、俺が呼ばれてソースを見た瞬間に原因がわかって直しました。
K&Rを読んだときに気が付いていたからです。
K&Rを読んだときに、気が付く人はすぐ気が付いていると思います。
自分で考える人です。
本当のプログラマです。
174デフォルトの名無しさん (スプッッ Sd12-fGro)
2019/04/20(土) 13:35:25.67ID:UeTDxeBdd >>173
自分で考えるのが良いってのは、プログラマに限らずなんでもそうだよね。
その上で本当のプログラマとやらにもとめられるのは、考えて理解することよりバグを出さないテストを行う能力だと思うね。
考えてもミスる時はミスるし。
場数を踏んだプログラマは、もちろんちゃんと考えるけど、その上で自分の理解やコードを信じない。
ちょっと話が違うかな。
自分で考えるのが良いってのは、プログラマに限らずなんでもそうだよね。
その上で本当のプログラマとやらにもとめられるのは、考えて理解することよりバグを出さないテストを行う能力だと思うね。
考えてもミスる時はミスるし。
場数を踏んだプログラマは、もちろんちゃんと考えるけど、その上で自分の理解やコードを信じない。
ちょっと話が違うかな。
175デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/20(土) 18:04:05.64ID:YpwC1XIf0 >>173
それはK&Rのよくないところか?
K&RはCとはどんな趣旨のものかを紹介する本で
アルゴリズムを正確に教える本ではない
単にCの機能を説明するために例を挙げただけのナンチャッテコードを
いきなり本番環境に持っていった東大卒とかぬかすやる気のねえクズと
大きな事故に至るまで欠陥を検出できない会社の検証ルールの問題だろうが
それはK&Rのよくないところか?
K&RはCとはどんな趣旨のものかを紹介する本で
アルゴリズムを正確に教える本ではない
単にCの機能を説明するために例を挙げただけのナンチャッテコードを
いきなり本番環境に持っていった東大卒とかぬかすやる気のねえクズと
大きな事故に至るまで欠陥を検出できない会社の検証ルールの問題だろうが
176デフォルトの名無しさん (ワッチョイ 368c-HmQt)
2019/04/20(土) 18:21:44.59ID:rZAwW+3j0 在るプログラムを作るのは間違い。買うのが正しい。
177デフォルトの名無しさん (ワッチョイ 5587-imD6)
2019/04/21(日) 00:16:47.67ID:NOPBo00z0 買ったもの、存在するものが四角い車輪だけだったとしてもか?
178デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/21(日) 00:25:39.70ID:sE/qbOcV0 買ったもの、つまり売っているものは、自作したものよりも性能がいい
179デフォルトの名無しさん (アウアウウー Sacd-cxay)
2019/04/21(日) 05:49:28.91ID:HT/hFmaDa Cできる人は(ここの住人のような)C++も当たり前にできるん?
180デフォルトの名無しさん (ワッチョイ 19ab-Gvo/)
2019/04/21(日) 06:09:41.42ID:znB8VhQa0 >>179
会社に今までC一筋20年くらいの人がC ++のプロジェクトに来たんだが使えなさすぎてクソワロタ
会社に今までC一筋20年くらいの人がC ++のプロジェクトに来たんだが使えなさすぎてクソワロタ
181デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/21(日) 06:45:11.14ID:XP3sT+Yd0182デフォルトの名無しさん (ワッチョイ 12a5-GXKd)
2019/04/21(日) 08:31:58.96ID:nzBarAq00 もしかしてCのライブラリのソースコード全部読んでんの
アホじゃね
アホじゃね
183デフォルトの名無しさん (ワッチョイ 69ad-61/s)
2019/04/21(日) 10:26:51.61ID:gW8lsVjX0 >>175
173です。
おっしゃるとおりです。
俺の言いたかったのは、まあそういう感じです。
K&Rの信奉者があまりに多いので
どゆふうに指摘していいのか困惑している次第です。
つまり、言語の紹介本としては良い本だと思いますけど、
それ以上ではない。
現在、英語版のK&Rしか私の本棚に見つからないけど、
PREFACEの15行目からは、
This book is meant to help the reader learn how to program in C.
と始まっています。
この部分、日本語版にはどのように翻訳されていたか失念しましたが、
まさに、そのとおりなのです。
しかし、ハッシュ値のところですけど、
あと数文字をコーディングするだけでまともなコードになるのに、
なぜしなかったのか?という疑問はあります。
173です。
おっしゃるとおりです。
俺の言いたかったのは、まあそういう感じです。
K&Rの信奉者があまりに多いので
どゆふうに指摘していいのか困惑している次第です。
つまり、言語の紹介本としては良い本だと思いますけど、
それ以上ではない。
現在、英語版のK&Rしか私の本棚に見つからないけど、
PREFACEの15行目からは、
This book is meant to help the reader learn how to program in C.
と始まっています。
この部分、日本語版にはどのように翻訳されていたか失念しましたが、
まさに、そのとおりなのです。
しかし、ハッシュ値のところですけど、
あと数文字をコーディングするだけでまともなコードになるのに、
なぜしなかったのか?という疑問はあります。
184デフォルトの名無しさん (ワッチョイ b18f-fGro)
2019/04/21(日) 10:42:02.64ID:ZEQClH310 プログラマなんて正常な判断ができないような過酷な状況に追いやられることなんてよくあるし、想像の余地はいろいろあるな。
185デフォルトの名無しさん (トンモー MMd5-+96b)
2019/04/21(日) 10:51:08.83ID:MDootfcvM186デフォルトの名無しさん (アウアウエー Sada-aFPd)
2019/04/21(日) 11:08:55.42ID:gKcyDuy9a Cでインターフェース・抽象性を意識したプログラムを書いてたらそんなに変わらんと思う。
ただ現実としては委譲を使ってたところから無理して継承に適応するために混乱することはある。現場で待っているのは神クラス。
ただ現実としては委譲を使ってたところから無理して継承に適応するために混乱することはある。現場で待っているのは神クラス。
187デフォルトの名無しさん (ブーイモ MMa6-ku7y)
2019/04/21(日) 12:18:59.87ID:+Seww2xKM まるで別物と思うわ。
ただ仕事で使う分にはみなjavaと同程度の構文しか使ってないから、違いはさほどないと感じるかも
ただ仕事で使う分にはみなjavaと同程度の構文しか使ってないから、違いはさほどないと感じるかも
188デフォルトの名無しさん (ワッチョイ b18f-fGro)
2019/04/21(日) 13:49:17.56ID:ZEQClH310 仕事以外でC++使うなんてドMでしょw
189デフォルトの名無しさん (ラクペッ MM81-1KF1)
2019/04/21(日) 13:55:23.49ID:7uFZhwV3M C言語で開発しているのも大概だけどなw
190デフォルトの名無しさん (ワッチョイ 09dc-YIQo)
2019/04/21(日) 14:18:53.79ID:P3URCDUY0 仕事以外でプログラミングすること自体がドMの極みw
191デフォルトの名無しさん (トンモー MMd5-+96b)
2019/04/21(日) 14:48:54.11ID:YKRN8m01M 34年間、ほぼ毎日プログラミングしてますよ!
定年になってもずっとやってると思います。
作りたいものが一杯有りすぎて体が2つ3つ欲しいです。
今、最も力を入れているのが人工知能です。
人類を滅ぼす悪魔のソフトを造るのが人生最大の目標です!
定年になってもずっとやってると思います。
作りたいものが一杯有りすぎて体が2つ3つ欲しいです。
今、最も力を入れているのが人工知能です。
人類を滅ぼす悪魔のソフトを造るのが人生最大の目標です!
193デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/21(日) 17:58:31.04ID:XP3sT+Yd0 >>183
全然わかってねえじゃん
あと数文字をコーディングすることが
Cの機能を説明するサンプルとしては邪魔だったら
その数文字をコーディングしねえのは当たり前だ
サンプルってのはS/N比が大事なんだよ
そこで伝えようとしていること以外のノイズは
徹底排除する必要があるんだ
全然わかってねえじゃん
あと数文字をコーディングすることが
Cの機能を説明するサンプルとしては邪魔だったら
その数文字をコーディングしねえのは当たり前だ
サンプルってのはS/N比が大事なんだよ
そこで伝えようとしていること以外のノイズは
徹底排除する必要があるんだ
194デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/21(日) 17:59:26.99ID:XP3sT+Yd0 >>191
おまえ自分が作ったプログラムの敵が未来からタイムマシンで暗殺に来るぞ
おまえ自分が作ったプログラムの敵が未来からタイムマシンで暗殺に来るぞ
195デフォルトの名無しさん (ワッチョイ 368c-HmQt)
2019/04/21(日) 19:19:27.57ID:AjzRUWat0 脳波を検出して見たいVRを出してやるわ ==> 人類滅亡
196デフォルトの名無しさん (ワッチョイ 69ad-61/s)
2019/04/21(日) 20:04:10.03ID:gW8lsVjX0197デフォルトの名無しさん (トンモー MMd5-+96b)
2019/04/21(日) 20:08:24.68ID:YKRN8m01M 今どきCとか
K&Rとかで
能書きこいて
馬鹿ジジイにも
ほどがあるwww
K&Rとかで
能書きこいて
馬鹿ジジイにも
ほどがあるwww
198デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/21(日) 20:10:12.48ID:XP3sT+Yd0 >>196
「初心者」という隠れ蓑に逃げる馬鹿って、自己紹介か?
「初心者」という隠れ蓑に逃げる馬鹿って、自己紹介か?
199デフォルトの名無しさん (ワッチョイ b18f-fGro)
2019/04/21(日) 20:48:49.16ID:ZEQClH310 >>197
イラッとするのはわからんでもないが、ここはC言語スレだからそんなこというのは荒らしだぞ
イラッとするのはわからんでもないが、ここはC言語スレだからそんなこというのは荒らしだぞ
200デフォルトの名無しさん (ワッチョイ 7252-U8iM)
2019/04/21(日) 23:45:38.39ID:2X82VWTJ0 >>196
あの時代の初心者は今時の初心者と違って、大半はちゃんと自分で考えて自力で技術を習得していく姿勢があり、ただ教えてもらった通りにするだけのようなのは自然と落伍していったと思うよ。当時の想定する読者層にあった適切な内容だったろうと思う。
あの時代の初心者は今時の初心者と違って、大半はちゃんと自分で考えて自力で技術を習得していく姿勢があり、ただ教えてもらった通りにするだけのようなのは自然と落伍していったと思うよ。当時の想定する読者層にあった適切な内容だったろうと思う。
201デフォルトの名無しさん (アウアウエー Sada-aFPd)
2019/04/22(月) 00:28:58.76ID:1mQu6LUBa 単に裾野が広がってるだけで
202デフォルトの名無しさん (ワッチョイ 92ad-AoSc)
2019/04/22(月) 01:07:58.48ID:HMkHCtfr0 >>196
人の意見を聞く気がないなら
チラシの裏にでも書いてなよ
175にもあるけど
初心者の真似するバカのコードが
そのままリリースされる態勢を反省した方が前向き
あと何であの本に信奉者がいるのか
理解できない自分も
人の意見を聞く気がないなら
チラシの裏にでも書いてなよ
175にもあるけど
初心者の真似するバカのコードが
そのままリリースされる態勢を反省した方が前向き
あと何であの本に信奉者がいるのか
理解できない自分も
203デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/22(月) 02:24:36.97ID:RPRc4IKz0204デフォルトの名無しさん (トンモー MMd5-+96b)
2019/04/22(月) 08:39:06.04ID:29O1k2F2M205デフォルトの名無しさん (アウアウウー Sacd-kBNU)
2019/04/22(月) 10:09:04.63ID:y6AB5FtQa >>179
いや、俺は使えない。
C++は30年ぐらい前にやろうとはしたが当時のPCでもワークステーションでも流行っておらず当然そのような仕事もなく、自分は主にUNIX関係の仕事だったので使う機会がほとんどなかった。
その後PCの方ではWindowsが流行ったが仕事はそのままなので変わらず、趣味ではWindowsでDelphi使ったりもしたがC++はほとんど手を着けず大雑把にしかわからないまま。
仕事はやがてLinux関係に移行するがそこでもC++が必要とされる事はなく現在に至る。趣味でJavaを覚えたりもしたが自分の仕事ではほとんど必要とされなかった。
今は趣味で Kotlin を覚えているところだが、C++については複雑化し過ぎたようなので今さらやる気は起きない。多分今後もやらないと思う。
Windowsプログラムを作る必要が出てきたとしても今ならC++なしで出来そうだし必要になるとしても局所的だろう。
いや、俺は使えない。
C++は30年ぐらい前にやろうとはしたが当時のPCでもワークステーションでも流行っておらず当然そのような仕事もなく、自分は主にUNIX関係の仕事だったので使う機会がほとんどなかった。
その後PCの方ではWindowsが流行ったが仕事はそのままなので変わらず、趣味ではWindowsでDelphi使ったりもしたがC++はほとんど手を着けず大雑把にしかわからないまま。
仕事はやがてLinux関係に移行するがそこでもC++が必要とされる事はなく現在に至る。趣味でJavaを覚えたりもしたが自分の仕事ではほとんど必要とされなかった。
今は趣味で Kotlin を覚えているところだが、C++については複雑化し過ぎたようなので今さらやる気は起きない。多分今後もやらないと思う。
Windowsプログラムを作る必要が出てきたとしても今ならC++なしで出来そうだし必要になるとしても局所的だろう。
206193 (ワッチョイ 0d5f-YIQo)
2019/04/22(月) 10:13:09.11ID:RPRc4IKz0207デフォルトの名無しさん (アークセー Sx79-m+ec)
2019/04/22(月) 12:15:04.42ID:IrgyqU7Vx >>179
MFCが流行ってたりC++Builderが流行ってた時にはそれなりに使う人口がいたと思うけど、過去メンテ以外で現在積極的に使ってる人は少ないかもね。
MFCが流行ってたりC++Builderが流行ってた時にはそれなりに使う人口がいたと思うけど、過去メンテ以外で現在積極的に使ってる人は少ないかもね。
208デフォルトの名無しさん (オッペケ Sr79-45C/)
2019/04/23(火) 01:03:01.93ID:dZlKsmD/r >>208
ioccc
ioccc
210デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/23(火) 07:52:30.55ID:ITUqyUOr0211デフォルトの名無しさん (ブーイモ MMb2-M3sR)
2019/04/23(火) 09:50:22.14ID:tEWsQxq+M []が演算子って常識じゃないのか?
どの優先順位表にも載ってるだろ?
どの優先順位表にも載ってるだろ?
212デフォルトの名無しさん (ワッチョイ 12a5-GXKd)
2019/04/23(火) 09:56:40.16ID:EYeaOvlg0 もちろんこういう書き方も出来るのが[]演算子と文字列リテラルの合わせ技
int wday = 2;
printf("%c", "SMTWTFS"[wday]);
int wday = 2;
printf("%c", "SMTWTFS"[wday]);
213デフォルトの名無しさん (アウアウウー Sacd-JNgg)
2019/04/23(火) 11:04:29.35ID:lZSXa7efa 標準入力で最初に数字を入力して、その値だけ文字列を入力するのはどんな感じで書けばいいですか
3
asdf
qwert
sdfghg
こんな感じで最初の入力の値に合わせて配列を用意する?感じになるとおもうんですが
なにもひらめきまへん
3
asdf
qwert
sdfghg
こんな感じで最初の入力の値に合わせて配列を用意する?感じになるとおもうんですが
なにもひらめきまへん
214デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/23(火) 11:22:00.88ID:ITUqyUOr0215デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/23(火) 11:44:40.51ID:5E3fgZzA0 >>212
土日・・・
土日・・・
216デフォルトの名無しさん (アウアウエー Sada-aFPd)
2019/04/23(火) 11:54:58.53ID:mPLR84qwa >>214
またおまえか
またおまえか
217デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/23(火) 12:32:49.10ID:ITUqyUOr0 >>216
何か用か?
何か用か?
218デフォルトの名無しさん (アウアウウー Sacd-kBNU)
2019/04/23(火) 15:59:59.72ID:gv0SOq8da >>213
文字を入力するだけで変数に入れる必要がないなら getchar() で '\n' 三回読んだら終わり。
変数に入れる必要があるなら最初の値の分だけ char * を保持する配列を char ** に malloc() や calloc() 使って確保して、更に全要素を malloc() や calloc() 使って確保して、それに対して fgets() を繰り返す。
文字を入力するだけで変数に入れる必要がないなら getchar() で '\n' 三回読んだら終わり。
変数に入れる必要があるなら最初の値の分だけ char * を保持する配列を char ** に malloc() や calloc() 使って確保して、更に全要素を malloc() や calloc() 使って確保して、それに対して fgets() を繰り返す。
219デフォルトの名無しさん (ワッチョイ 6e7c-JNgg)
2019/04/23(火) 16:43:21.53ID:56NoAZCP0 >>215
土曜は日曜であり、全は一である。
土曜は日曜であり、全は一である。
220デフォルトの名無しさん (アウアウウー Sacd-kBNU)
2019/04/23(火) 17:41:00.23ID:gv0SOq8da 月月火水木金金
221デフォルトの名無しさん (ワントンキン MM62-o4pp)
2019/04/23(火) 20:20:58.69ID:i9di+stUM おじいちゃん戦争はもう終わってるよ
222デフォルトの名無しさん (ワッチョイ a901-m+ec)
2019/04/23(火) 20:24:41.37ID:aEjNiIWC0 令和も戦争のない年号になると良いが、ちょっと雲行きが怪しいな。
223デフォルトの名無しさん (ワッチョイ 69ad-61/s)
2019/04/23(火) 20:44:52.15ID:k/LWg8++0224デフォルトの名無しさん (アウアウカー Sab1-aFPd)
2019/04/23(火) 20:56:24.90ID:XDXL3q34a コンピュータ好きなオタクって勇ましいやつおおいよね
225デフォルトの名無しさん (ブーイモ MMd5-ku7y)
2019/04/23(火) 21:21:40.55ID:Dz3CEytOM 語尾によねをつけて同調を求めたがるのは左巻きの典型だよね
226デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/23(火) 21:58:52.95ID:ITUqyUOr0 俺は右巻きだが「よね」はよく使う
レッテル貼りは瞬時に反証される論議の中では自爆行為だ
しょーもね
レッテル貼りは瞬時に反証される論議の中では自爆行為だ
しょーもね
227デフォルトの名無しさん (アウアウエー Sada-aFPd)
2019/04/23(火) 22:34:42.99ID:bUhZMb1va やっぱり自信がないからコンピュータ好きになるのかな?
228デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/23(火) 23:06:00.81ID:ITUqyUOr0 断言できないおまえが自信ないだけだ(pgr
229デフォルトの名無しさん (ワッチョイ 3602-Mntl)
2019/04/24(水) 03:42:44.00ID:SZsIFAZx0 よね
230デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/24(水) 08:04:11.05ID:P2wnwvJc0 ICEデバッグしてるとき、とある変数の値をいくつか足し算して、別の変数に代入する関数で、
変数の内容同じなのに、結果が違う。。
最適化OFFにしてビルドしてる。
変数の内容同じなのに、結果が違う。。
最適化OFFにしてビルドしてる。
231デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/24(水) 08:05:24.40ID:P2wnwvJc0 その関数は、別の場所から2度呼んでて、1回目と2回目で結果が違う
計算に使う値は全く同じなのに
計算に使う値は全く同じなのに
232デフォルトの名無しさん (ラクペッ MM81-1KF1)
2019/04/24(水) 08:51:50.10ID:zvRm4GUYM >>230
自分の経験則で言えば、大抵は関数の処理途中で割り込み処理が発生してメモリかレジスタバンクを書き換えていると思う
自分の経験則で言えば、大抵は関数の処理途中で割り込み処理が発生してメモリかレジスタバンクを書き換えていると思う
233デフォルトの名無しさん (ワッチョイ 12a5-GXKd)
2019/04/24(水) 10:14:34.45ID:V3yGzJXe0 一回目から二回目の間で変数のどれかが書き変わってるに決まってんじゃん
234デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/24(水) 10:55:30.16ID:HTDgYDWT0 >>230
加算に使っているレジスタを割り込みで使いっぱしてね?
加算に使っているレジスタを割り込みで使いっぱしてね?
235デフォルトの名無しさん (ワッチョイ 0d5f-YIQo)
2019/04/24(水) 10:58:08.05ID:HTDgYDWT0 >>230
_Atomic使ってるか?
_Atomic使ってるか?
236デフォルトの名無しさん (アークセー Sx79-m+ec)
2019/04/24(水) 11:21:13.53ID:IysC1nu6x >>230
ほぼ100%スタックのゴミ拾ってる。
ほぼ100%スタックのゴミ拾ってる。
237デフォルトの名無しさん (ドコグロ MM1d-R3jW)
2019/04/24(水) 12:37:12.74ID:AiHhhuXgM まれにポインタ周りバグっててメモリー書き換えてるとか
てかICE使ってるならそこで止めて変数の中身確認しろよ
てかICE使ってるならそこで止めて変数の中身確認しろよ
238デフォルトの名無しさん (ワッチョイ 12a5-GXKd)
2019/04/24(水) 13:14:34.92ID:V3yGzJXe0 ICE製造の過程でICEそのもののデバッグでもしてんじゃね
239デフォルトの名無しさん (ワッチョイ 3602-Mntl)
2019/04/24(水) 18:27:12.37ID:SZsIFAZx0 まずはアイスクリームでも食べて休むといい
よね
よね
240デフォルトの名無しさん (ワッチョイ a901-m+ec)
2019/04/24(水) 18:45:45.47ID:JD7HGNH40 ここ20年ほどフルICE使ってないなぁ。
未だにあるんだろうか?
未だにあるんだろうか?
241デフォルトの名無しさん (ワッチョイ 5e63-JNgg)
2019/04/24(水) 20:00:32.37ID:P2wnwvJc0 230だけど、俺の見当違いでした。
インプットの変数の値が違っていたので、当然足し算の結果も違っていたというオチ。
ICEデバッグだと変数を表示するとメモリの中じゃなくて表示した時点で割り当てられたレジスタの値を表示するので、
変数としては変わってないはずなのに他で書き換えられるので逐一変わって混乱していた。
ICE初心者でしたw
インプットの変数の値が違っていたので、当然足し算の結果も違っていたというオチ。
ICEデバッグだと変数を表示するとメモリの中じゃなくて表示した時点で割り当てられたレジスタの値を表示するので、
変数としては変わってないはずなのに他で書き換えられるので逐一変わって混乱していた。
ICE初心者でしたw
242デフォルトの名無しさん (ワッチョイ 3669-hooH)
2019/04/24(水) 22:16:06.15ID:03JhFb4B0 デバッグ中に最適化を抑制するのは間違いではないと思います。
慣れてくると最適化したままでもある程度推測できるようになりますので、
リリースオプションでICEを使用することの方が多くなるかもしれません。
慣れてくると最適化したままでもある程度推測できるようになりますので、
リリースオプションでICEを使用することの方が多くなるかもしれません。
243デフォルトの名無しさん (ワッチョイ 19ab-Gvo/)
2019/04/24(水) 22:18:24.10ID:lwqMqFKi0 CPUぶっこぬいて差し替えてやるやつ?
244デフォルトの名無しさん (ラクペッ MM81-1KF1)
2019/04/24(水) 22:41:36.06ID:W4WRMDmVM ぶっこ抜くと言うよりターゲットボードのCPUの代わりに専用のソケットを実装して専用プローブで接続する
PCなどと違って組み込みのSoCにソケットなど無いのでぶっこ抜いて差し替えるなど無理
PCなどと違って組み込みのSoCにソケットなど無いのでぶっこ抜いて差し替えるなど無理
245デフォルトの名無しさん (ワッチョイ 9201-R3jW)
2019/04/24(水) 23:07:42.00ID:gVrMWpFh0246デフォルトの名無しさん (アウアウウー Sae9-MRXB)
2019/04/25(木) 00:33:17.24ID:1oTSGFU/a scanf("%d%d%d", &a, &b, &c);
こうまとめて入力するのをfgets使うとどうやるの?
fgets(s, sizeof(s), stdin);
sscanf(s, "%d", &a);
↑
このセットをループで三つまわすしかない?
一行でやる方法あるんかな
こうまとめて入力するのをfgets使うとどうやるの?
fgets(s, sizeof(s), stdin);
sscanf(s, "%d", &a);
↑
このセットをループで三つまわすしかない?
一行でやる方法あるんかな
247デフォルトの名無しさん (アウアウエー Sa13-9UpB)
2019/04/25(木) 00:56:36.76ID:WntZOZIYa いや、1行中に入ってるなら同じじゃないか?
行の区切りとか要素の区切りとか細かい話はあるけども
行の区切りとか要素の区切りとか細かい話はあるけども
248デフォルトの名無しさん (ワッチョイ 5d5f-KxX0)
2019/04/25(木) 03:18:03.15ID:rmDyF6iV0 またfgets教か
マジいやらしさがカルト教団さながらだ
マジいやらしさがカルト教団さながらだ
249デフォルトの名無しさん (ワッチョイ 1b02-1PXK)
2019/04/25(木) 04:21:17.20ID:D6NtakiX0251デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/25(木) 21:00:37.28ID:E+TyVG800252デフォルトの名無しさん (アウアウウー Sae9-MRXB)
2019/04/26(金) 10:01:13.22ID:EJ4BH9nCa >>250
商売すんなや…
商売すんなや…
253デフォルトの名無しさん (アウアウウー Sae9-tnqD)
2019/04/26(金) 10:28:55.76ID:YRtkzMZRa254デフォルトの名無しさん (ワッチョイ 1dda-zd//)
2019/04/26(金) 13:15:14.86ID:0jspcAl20 商売のための宣伝だろ
255デフォルトの名無しさん (アウアウウー Sae9-tnqD)
2019/04/26(金) 14:06:27.08ID:YRtkzMZRa そうなの?何の宣伝になってるのか全くわからんのだが。
256デフォルトの名無しさん (ワッチョイ 1dda-zd//)
2019/04/26(金) 14:27:22.39ID:0jspcAl20 誰もアクセスしない隔離スレなんで
時々こうやって宣伝して引っかかるカモを呼び寄せようと
時々こうやって宣伝して引っかかるカモを呼び寄せようと
257デフォルトの名無しさん (アウアウウー Sae9-tnqD)
2019/04/26(金) 14:36:01.95ID:YRtkzMZRa 元々有償でプログラム作るスレとして作ったスレだったんだろうけど結局誰もそんな風には使ってなくてただのプログラム発表の場になってるよね?
ま、しかし、5ちゃんのような掲示板で稼ぐのは無理があるよなあ。それ専用のサイトなら可能だろうけど。
ま、しかし、5ちゃんのような掲示板で稼ぐのは無理があるよなあ。それ専用のサイトなら可能だろうけど。
258デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/27(土) 10:20:19.39ID:H+/AGAV+0 既存をちょっと修正してほぼデグレのテストというスタイルの俺には、
要望に応じて1から新しいプログラムを組む人を尊敬する
修正は修正で既存への影響の面でそれなりのノウハウは要るにしても
要望に応じて1から新しいプログラムを組む人を尊敬する
修正は修正で既存への影響の面でそれなりのノウハウは要るにしても
259デフォルトの名無しさん (ワッチョイ e501-SN11)
2019/04/27(土) 10:42:26.45ID:e+ce++rA0 >>258
むしろ俺は人の作ったワケワカメなコードを文句も言わずメンテしてる人はすごいと思う。
むしろ俺は人の作ったワケワカメなコードを文句も言わずメンテしてる人はすごいと思う。
260デフォルトの名無しさん (トンモー MM79-LqAG)
2019/04/27(土) 16:22:24.62ID:W91FG5LxM >>259
文句を言わずに、というより
文句を言わせずに、だと思う。
俺は奴隷だったので
よくわかる。
会社辞めて派遣になって
気分すっきり!
な~んの責任もないのに
年収1000万だもの
派遣辞められません!
文句を言わずに、というより
文句を言わせずに、だと思う。
俺は奴隷だったので
よくわかる。
会社辞めて派遣になって
気分すっきり!
な~んの責任もないのに
年収1000万だもの
派遣辞められません!
261デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/27(土) 17:56:34.08ID:H+/AGAV+0 >>260
派遣でそれほどの能力があったら独立して2000万は稼げるのでは
派遣でそれほどの能力があったら独立して2000万は稼げるのでは
262デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/27(土) 18:25:28.46ID:H+/AGAV+0 派遣でそれだけ貰える程のスキルがあるってことは、
C言語だと本当に低レベルのデバイスの制御からビジネスロジックの
設計からお任せできるレベル
独立すべきでしょう
C言語だと本当に低レベルのデバイスの制御からビジネスロジックの
設計からお任せできるレベル
独立すべきでしょう
263デフォルトの名無しさん (ワッチョイ e501-SN11)
2019/04/27(土) 19:19:15.66ID:e+ce++rA0 ハードの設計から組み込みソフトはもちろんWindows、Android.、iOSのアプリ、DBもWebもゼロから設計できるスキルがあったらどこに行ったらそんな高級取りになれるでしょうか?
264デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/27(土) 19:26:07.70ID:mTDcTDsb0 火事の現場
265デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/27(土) 19:26:19.83ID:H+/AGAV+0 コンサルレベルでもなかなか
266デフォルトの名無しさん (ワッチョイ 1b02-KxX0)
2019/04/28(日) 03:02:09.70ID:IQfIs7rY0 自分で開業した方が良さそうな感じもするが、そうなると営業力も必要になるな。
まあでも Android や iOS アプリの場合は営業力あまりなくても世界中に売れれば儲かる事がある。
電卓アプリでこんな風に稼いでいる人も居るし。
https://appmarketinglabo.net/calculator-1100man/
これは世界での需要がどのぐらいあるかとプログラムが簡単かどうかはあまり関係ないってことでもあるかな。
需要がないものだと作るのが大変なプログラムでも売れなくて稼げない。苦労と儲けは無関係。
まあでも Android や iOS アプリの場合は営業力あまりなくても世界中に売れれば儲かる事がある。
電卓アプリでこんな風に稼いでいる人も居るし。
https://appmarketinglabo.net/calculator-1100man/
これは世界での需要がどのぐらいあるかとプログラムが簡単かどうかはあまり関係ないってことでもあるかな。
需要がないものだと作るのが大変なプログラムでも売れなくて稼げない。苦労と儲けは無関係。
267デフォルトの名無しさん (ワッチョイ 1b8c-B2tE)
2019/04/28(日) 07:50:35.97ID:3xnz0I0C0 大半の自営業は開発費半分を前金でもらいとんずら。
268デフォルトの名無しさん (トンモー MM79-LqAG)
2019/04/28(日) 13:24:06.83ID:JRRKtJTbM269デフォルトの名無しさん (ワントンキン MMa3-sCra)
2019/04/28(日) 20:30:30.58ID:I/cjvEXhM そんなことすれば詐欺として警察に追われる身になる
270デフォルトの名無しさん (ワッチョイ 5d21-ynyp)
2019/04/29(月) 21:07:19.95ID:2RjR17Kk0 Linuxでシリアル通信のソフトを作成しています。
http://codepad.org/L4BLwgAQ
コマンドを送信すると、相手が応答電文を返してくる仕様なのですが
write→readでは、うまく受信できないようです。
teratermで同じ電文を投げると、受信できるので
このソースが悪いのだと思っています。
投げて、受けるというのを上手くやるにはどうしたらいいでしょうか。
お助けをよろしくおねがいします。
http://codepad.org/L4BLwgAQ
コマンドを送信すると、相手が応答電文を返してくる仕様なのですが
write→readでは、うまく受信できないようです。
teratermで同じ電文を投げると、受信できるので
このソースが悪いのだと思っています。
投げて、受けるというのを上手くやるにはどうしたらいいでしょうか。
お助けをよろしくおねがいします。
271デフォルトの名無しさん (アウアウエー Sa13-9UpB)
2019/04/29(月) 21:50:17.89ID:AbuAGGh6a socatパクってみれば
272デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/29(月) 22:10:00.81ID:atpu4K080 >>270
とりあえずwrite()の戻り値とread()の戻り値が-1でないことから確認しようか
とりあえずwrite()の戻り値とread()の戻り値が-1でないことから確認しようか
273デフォルトの名無しさん (ブーイモ MM43-CH6N)
2019/04/29(月) 22:16:47.11ID:zdawGwopM274デフォルトの名無しさん (トンモー MM79-LqAG)
2019/04/29(月) 22:19:37.72ID:dHR449jcM Cっていいよね。
シンプルで全て見えてる。
キチンと組めば性能も素晴らしく、
ソースも分かりやすい。
ま、馬鹿が使うと酷いことになるから
馬鹿には触らせたくない!
馬鹿にはJavaがお似合いw
シンプルで全て見えてる。
キチンと組めば性能も素晴らしく、
ソースも分かりやすい。
ま、馬鹿が使うと酷いことになるから
馬鹿には触らせたくない!
馬鹿にはJavaがお似合いw
275デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/29(月) 22:40:41.10ID:atpu4K080276デフォルトの名無しさん (ワッチョイ 8552-KxX0)
2019/04/29(月) 22:45:19.28ID:InnqLHhB0 Cのスレで用途も構造も違うJavaとか出してくるあたり相当頭悪いんだと思った
277デフォルトの名無しさん (トンモー MM79-LqAG)
2019/04/29(月) 23:27:52.24ID:dHR449jcM ああ
Javaわかんね―馬鹿か
Cしかわからん馬鹿院生って感じかな(笑)
Javaわかんね―馬鹿か
Cしかわからん馬鹿院生って感じかな(笑)
278デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/30(火) 01:53:25.72ID:AMBMNz/t0 なんでスレがカテゴライズされているかも理解出来ない
279デフォルトの名無しさん (ワッチョイ e501-SN11)
2019/04/30(火) 08:20:44.73ID:QYNECMA50 Cが分からないってやつはコンピュータの基礎の基礎が理解できてない。
いきなりプログラミングから学ぶからそうなる。
いきなりプログラミングから学ぶからそうなる。
280本田宗一郎 (トンモー MM79-LqAG)
2019/04/30(火) 09:04:16.26ID:UDRlTLQRM Cしかできない奴はCを評価できない
そんな簡単なこともわからない
院生くずれのバカニート(笑)
そんな簡単なこともわからない
院生くずれのバカニート(笑)
281デフォルトの名無しさん (ワッチョイ cb34-KxX0)
2019/04/30(火) 10:31:21.97ID:FQfKtoeU0 いや評価はできる
この世の森羅万象すべてを知り尽くしているやつなんかいない
みんなそれぞれ何らかの「井の中」にいる
そこからCならCがどう見えるかを述べているのを
聞いた者がどう捉えるかの問題だ
自分の「井の中」のほうが相手より大きそうだからって
天狗になるやつこそ成長の止まった将来性のないやつだ
この世の森羅万象すべてを知り尽くしているやつなんかいない
みんなそれぞれ何らかの「井の中」にいる
そこからCならCがどう見えるかを述べているのを
聞いた者がどう捉えるかの問題だ
自分の「井の中」のほうが相手より大きそうだからって
天狗になるやつこそ成長の止まった将来性のないやつだ
282デフォルトの名無しさん (トンモー MM79-LqAG)
2019/04/30(火) 11:10:18.88ID:UDRlTLQRM できね―よ馬鹿
283デフォルトの名無しさん (ワッチョイ 1b8c-B2tE)
2019/04/30(火) 11:15:16.30ID:/zD1IEOE0 OSなしで書ける言語はC?
>>283
C といえども OS なしではなにもできません
C といえども OS なしではなにもできません
285デフォルトの名無しさん (ワッチョイ cb34-KxX0)
2019/04/30(火) 11:40:42.65ID:FQfKtoeU0 フリースタンディング環境のことだろ
ソース入力やビルドをOSなしでって意味ではなく
ソース入力やビルドをOSなしでって意味ではなく
286デフォルトの名無しさん (アウアウエー Sa13-9UpB)
2019/04/30(火) 11:43:53.69ID:vCAloE34a ハンドコンパイル・アセンブルするってことだろう
>>285
C だけではなにも出来ないのではないでしょうか、最低限アセンブラの部分が数%はあるでしょう?
C だけではなにも出来ないのではないでしょうか、最低限アセンブラの部分が数%はあるでしょう?
288デフォルトの名無しさん (ラクペッ MM91-jdJy)
2019/04/30(火) 12:02:29.80ID:FWtA2SNeM クロス開発ではホスト環境とターゲットは別
小規模組込み開発ではターゲットにはOSと呼べるものが存在しない場合もある
小規模組込み開発ではターゲットにはOSと呼べるものが存在しない場合もある
289デフォルトの名無しさん (ワッチョイ e501-SN11)
2019/04/30(火) 12:17:23.14ID:QYNECMA50 >>287
CPUによってはリセットエントリから100%C言語だけで記述できるよ。
CPUによってはリセットエントリから100%C言語だけで記述できるよ。
290デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/04/30(火) 12:28:19.12ID:AMBMNz/t0 書くことはできる
紙と鉛筆さえあれば
紙と鉛筆さえあれば
291デフォルトの名無しさん (ワッチョイ 1dd2-DhOR)
2019/04/30(火) 13:23:52.39ID:JZ+qVZdl0 OS無しで動くプログラムが書ける言語はC?
ってことだろうな
ってことだろうな
>>289
へえ!そうなんですか!多倍長演算をCで書くときキャリーフラグはどう扱うのですか?
へえ!そうなんですか!多倍長演算をCで書くときキャリーフラグはどう扱うのですか?
293デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/30(火) 14:20:29.60ID:Cm5pFeJF0 >>292
15bit+キャリーみたいな形で扱えばいいだけ
15bit+キャリーみたいな形で扱えばいいだけ
>>293
それは私もやりましたが、悲惨なコーディングになりました、キャリーを使えるのにそれを無視してCですべて記述するとか、ありえない選択だと考えています
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
それは私もやりましたが、悲惨なコーディングになりました、キャリーを使えるのにそれを無視してCですべて記述するとか、ありえない選択だと考えています
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
295デフォルトの名無しさん (ワッチョイ e501-SN11)
2019/04/30(火) 15:58:16.84ID:QYNECMA50 >>295
まあ java だけで「やってしまった」OSというのもありますから…多分 JNI を使っているとは思いますけど…
C 言語だけで全部やってしまう、というのはありえなく、例外 exception の実装に有用な setjump(), longjump() ですら、CPU を叩かずにはいられない内容ですから、世に蔓延する「C言語マンセー」は、その機会があればなんとしても叩かずにはいられないのです
まあ java だけで「やってしまった」OSというのもありますから…多分 JNI を使っているとは思いますけど…
C 言語だけで全部やってしまう、というのはありえなく、例外 exception の実装に有用な setjump(), longjump() ですら、CPU を叩かずにはいられない内容ですから、世に蔓延する「C言語マンセー」は、その機会があればなんとしても叩かずにはいられないのです
297デフォルトの名無しさん (ワッチョイ e501-SN11)
2019/04/30(火) 17:01:36.40ID:QYNECMA50 >>296
もしかしたら貴方と私は違う思想の元で仕事してるのかも。
JNIはAndroidぐらいでしか使ってない、てかそもそもJavaを使う機会が少ないような業界の人です。
なんちゃってtry〜catchのためのsetjmp系はそれでもやっぱりアセンブラを使わないC言語の範疇内な訳であって、やっぱりC言語否定の理由にはならんとです。
唯一、OSを記述する際のタスクプリエンプトだけはC言語だけで記述できず悪魔のスタック操作とコンテキスト切り替えが必要なのでアセンブラが必須だとは思いますが。
もしかしたら貴方と私は違う思想の元で仕事してるのかも。
JNIはAndroidぐらいでしか使ってない、てかそもそもJavaを使う機会が少ないような業界の人です。
なんちゃってtry〜catchのためのsetjmp系はそれでもやっぱりアセンブラを使わないC言語の範疇内な訳であって、やっぱりC言語否定の理由にはならんとです。
唯一、OSを記述する際のタスクプリエンプトだけはC言語だけで記述できず悪魔のスタック操作とコンテキスト切り替えが必要なのでアセンブラが必須だとは思いますが。
298デフォルトの名無しさん (ワッチョイ 2301-4ufv)
2019/04/30(火) 17:54:15.66ID:Cm5pFeJF0299デフォルトの名無しさん (ワッチョイ 2d5f-zd//)
2019/04/30(火) 18:21:31.59ID:hc3e5D+80 プログラミング素人です。
scanf関数について質問なのですが、
char str[10];
for(i=0;i<5;i++){
scanf(“%c”,str[i]);
}
として、「abcd」と入力された場合、
str[0]=‘a’
str[1]=‘b’
str[2]=‘c’
str[3]=‘d’
str[4]=‘¥’
str[5]=‘0’
となるのでしょうか?
str配列の0~3番目にa~dが格納されていることはprintfでわかりましたが、4以降は何が格納されているのか自分で調べる方法がわかりません…
scanf関数について質問なのですが、
char str[10];
for(i=0;i<5;i++){
scanf(“%c”,str[i]);
}
として、「abcd」と入力された場合、
str[0]=‘a’
str[1]=‘b’
str[2]=‘c’
str[3]=‘d’
str[4]=‘¥’
str[5]=‘0’
となるのでしょうか?
str配列の0~3番目にa~dが格納されていることはprintfでわかりましたが、4以降は何が格納されているのか自分で調べる方法がわかりません…
300さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b501-VySk)
2019/04/30(火) 18:41:15.22ID:lzNlO/OB0 >>299
C/C++では文字は整数なんだ。整数として出力して、アスキー表を参照すれば、文字がわかるはず。
C/C++では文字は整数なんだ。整数として出力して、アスキー表を参照すれば、文字がわかるはず。
>>299
鋭い質問ですね…手元でいろいろ試していますが、今ひとつ事情がつかめないでいます
https://ideone.com/l3ZslT
ideone と x64/gcc/cygwin でも結果が変わってしまいます…
鋭い質問ですね…手元でいろいろ試していますが、今ひとつ事情がつかめないでいます
https://ideone.com/l3ZslT
ideone と x64/gcc/cygwin でも結果が変わってしまいます…
302さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b501-VySk)
2019/04/30(火) 18:51:26.51ID:lzNlO/OB0 str[5]以降は決まってないから調べてもあまり意味がない。多分ゴミデータ。
303デフォルトの名無しさん (ワッチョイ e501-SN11)
2019/04/30(火) 19:09:43.34ID:QYNECMA50304デフォルトの名無しさん (ワッチョイ 65b3-6xWl)
2019/04/30(火) 19:30:23.83ID:CZMZfk1L0 >>303
str[4]は'\n'じゃね?
str[4]は'\n'じゃね?
305デフォルトの名無しさん (アウアウエー Sa13-9UpB)
2019/04/30(火) 19:42:59.90ID:ZdpyyptHa まあ改行入れたら改行ですね
306デフォルトの名無しさん (ワッチョイ a373-MRXB)
2019/05/01(水) 00:16:42.15ID:pM2+GGDK0 自作関数内のエラー時にerrnoに値をセットするのってマナー違反ですか?
307デフォルトの名無しさん (アウアウエー Sa13-9UpB)
2019/05/01(水) 00:27:56.20ID:Lv+8X8zta 入れられるもんなら入れてみろ
308デフォルトの名無しさん (ワッチョイ 4b63-MRXB)
2019/05/01(水) 01:10:53.33ID:dGckAS/m0 信長 入れられないなら殺してしまえそのプロセス
秀吉 入れられるまで仕様変更を待とう
家康 俺が直してやる!
秀吉 入れられるまで仕様変更を待とう
家康 俺が直してやる!
309306 (ワッチョイ a3c5-MRXB)
2019/05/01(水) 02:42:38.43ID:LlVhs4fx0 https://ideone.com/JeNdi9
こういうエラー処理を書きたいんですが
こういうエラー処理を書きたいんですが
310デフォルトの名無しさん (アウアウウー Sae9-lbZQ)
2019/05/01(水) 13:05:10.79ID:Vm5gAWGsa311デフォルトの名無しさん (アウアウエー Sa13-9UpB)
2019/05/01(水) 14:38:29.13ID:pGaFGHQ6a312デフォルトの名無しさん (JP 0H13-1PXK)
2019/05/01(水) 14:41:59.38ID:yF2N0E1tH >>304
%c は空白文字は入らないのでは?
%c は空白文字は入らないのでは?
313デフォルトの名無しさん (アウアウエー Sa13-9UpB)
2019/05/01(水) 15:19:37.49ID:pGaFGHQ6a %cは文字は全部入る。
受け付ける文字をはっきりさせたいなら[]使うのがよい。
受け付ける文字をはっきりさせたいなら[]使うのがよい。
314デフォルトの名無しさん (ワッチョイ 7fda-51S+)
2019/05/02(木) 12:01:07.73ID:oq2ExZVd0 printf()のペアっぽいからという理由で
scanf()を使わせる初心者本をこの世から駆逐すべき
scanf()を使わせる初心者本をこの世から駆逐すべき
315デフォルトの名無しさん (ワッチョイ 0663-Cg3z)
2019/05/02(木) 12:52:42.24ID:Yg4L14jR0 使い方を熟知している人が使う分には問題ないが
「良い子はマネをしてはいけません」の典型だな
「良い子はマネをしてはいけません」の典型だな
316デフォルトの名無しさん (ワッチョイ 62a5-PJjo)
2019/05/02(木) 13:24:17.15ID:+EePt9KB0 初心者はただ値が入力できりゃ楽しいんじゃね
ついでにscanfはかんたんに間違いを引き起こすことが出来るから脆弱性の説明にも使える
このご時世、かんたんに間違いを体験させること自体が難しくなってる
セキュリティが高くなると間違えさせる行動へのコストもまた高くなる
ついでにscanfはかんたんに間違いを引き起こすことが出来るから脆弱性の説明にも使える
このご時世、かんたんに間違いを体験させること自体が難しくなってる
セキュリティが高くなると間違えさせる行動へのコストもまた高くなる
317デフォルトの名無しさん (アウアウウー Sabb-vI8p)
2019/05/02(木) 15:41:08.09ID:jQNzLmJja 昔のマイコン的なものだと暴走したりしてなお良い。
core dump してるようじゃまだまだ安全過ぎる。
core dump してるようじゃまだまだ安全過ぎる。
318デフォルトの名無しさん (ワッチョイ 6752-ahOC)
2019/05/02(木) 19:38:22.59ID:lQcGaGZC0 たしかにscanfが危険なものだと知った時にどうやってfgetsに置き換えるか考えたの思い出した
319デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/02(木) 21:18:22.90ID:H376nx5x0 >>287
その数%のアセンブラの部分を、おまえさんは「OS」と呼ぶのか?
その数%のアセンブラの部分を、おまえさんは「OS」と呼ぶのか?
320デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/02(木) 21:20:29.21ID:H376nx5x0321デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/02(木) 21:21:11.50ID:TaSBDpemM322デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/02(木) 21:22:02.02ID:H376nx5x0 >>315
「よい子は真似をしてはいけません」と言われる芸当をやっているプロになろうって人には当てはまらない
「よい子は真似をしてはいけません」と言われる芸当をやっているプロになろうって人には当てはまらない
323デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/02(木) 21:24:27.49ID:H376nx5x0324デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/02(木) 21:25:23.96ID:H376nx5x0 匿名掲示板だから逃げたければ逃げられるが
おまえさんの人間性の問題が変わるわけではない
おまえさんの人間性の問題が変わるわけではない
325デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/02(木) 21:34:15.84ID:TaSBDpemM 馬鹿丸だし(笑)
論文ゼロの院生くずれ馬鹿ニート
という雰囲気プンプンだな(爆)
論文ゼロの院生くずれ馬鹿ニート
という雰囲気プンプンだな(爆)
326デフォルトの名無しさん (ワッチョイ f7dc-ahOC)
2019/05/02(木) 21:53:25.96ID:TlCaXbcx0 院生とかめっちゃ高評価じゃんw
俺には大学にコロコロコミックを持ってきて、全ての人間が敵に見えて毎日発狂してた同級生の江○君と被ってしまう。
頭はすこぶる良いんだけど、頭が弱い残念なアイツの雰囲気がプンプン
俺には大学にコロコロコミックを持ってきて、全ての人間が敵に見えて毎日発狂してた同級生の江○君と被ってしまう。
頭はすこぶる良いんだけど、頭が弱い残念なアイツの雰囲気がプンプン
327デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/02(木) 21:55:19.32ID:H376nx5x0 学歴コンプレックスまる出しだな
頭隠して尻隠さずw
頭隠して尻隠さずw
328デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/02(木) 22:04:26.88ID:TaSBDpemM 院生の意味が理解できない馬鹿(笑)
329デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/02(木) 22:05:27.60ID:TaSBDpemM 学歴など無意味
馬鹿は馬鹿(笑)
馬鹿は馬鹿(笑)
330デフォルトの名無しさん (ワッチョイ e201-VrjD)
2019/05/02(木) 22:06:18.25ID:BLoepDOP0 >>319
何を言いたいのか意味不明w
何を言いたいのか意味不明w
331デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/02(木) 22:22:28.19ID:H376nx5x0 効いてる効いてるw
突然論文ゼロとか言い出すカモは扱いやすすぎ
突然論文ゼロとか言い出すカモは扱いやすすぎ
332デフォルトの名無しさん (アウアウクー MM9f-I0oC)
2019/05/03(金) 00:28:15.71ID:ykdjIw3IM #include <stdio.h>
int main(void){
remove("https://mevius.5ch.net/test/read.cgi/tech/1554171817/");
return 0;
}
int main(void){
remove("https://mevius.5ch.net/test/read.cgi/tech/1554171817/");
return 0;
}
333デフォルトの名無しさん (ワッチョイ 6752-ahOC)
2019/05/03(金) 03:22:53.97ID:l9gwftmb0 文字列を消しても実態が消えないのでは
334デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/03(金) 07:52:51.95ID:EnpL9vkxM Cできるけどアセンブラできない、
ってのはCもできないってことだ。
ってのはCもできないってことだ。
335デフォルトの名無しさん (ワッチョイ 06d2-R0y6)
2019/05/03(金) 09:31:51.08ID:Adh7HeMA0 アセンブラからCに行ったらアセンブラでやってたアルゴリズムがCで表現できなく、非常にもどかしくて・・・
>>335
それは初耳、いや、どういうのに手こずったのか参考に教えていただけませんか?
それは初耳、いや、どういうのに手こずったのか参考に教えていただけませんか?
337デフォルトの名無しさん (ワッチョイ cb02-R0y6)
2019/05/03(金) 17:51:44.54ID:VHrwonhY0 出来る出来ないっていう話なら、基本Cできるんじゃないかな。
CPU固有のブルック転送命令とかそんなのを除いて。
(それすら別にできるけどね。)
1命令でできてたことがめんどくさくなるってものならあるかも。
CPU固有のブルック転送命令とかそんなのを除いて。
(それすら別にできるけどね。)
1命令でできてたことがめんどくさくなるってものならあるかも。
338デフォルトの名無しさん (ワッチョイ 0663-Cg3z)
2019/05/03(金) 18:09:15.33ID:Mu7G7jjV0 アセンブラで作るにしてもでもアルゴリズムで実装しているならCでも出来るんじゃないの?
339デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/03(金) 18:10:41.96ID:3HjiUXGl0 プラットフォーム依存の問題は言語じゃなくてコンパイラより下が解決するわけでさ、それをできると言っていいならなんでもできると思うよ。
341デフォルトの名無しさん (ワッチョイ 4240-ahOC)
2019/05/03(金) 19:20:32.29ID:Qo5d3PXm0 >335
キャリーフラグが無くてオーバーフロー/アンダーフロー判定が面倒だとか、
ビットシフトはあってもローテーションが無いとか。
ジャンプ命令使うとパイプラインが初期化されるからなるべく使うなと聞いたのに
逆汗見たらジャンプしまくってるじゃないかとか。
8/16bit時代のアセンブラは1バイト、1ステート削って処理速度稼いでたんで
上記の差を補う処理が無駄に思えて・・・。
かといってインラインアセンブラ使うのはなんか違うと(インライン使うと最適化されないとも聞いてたし)。
それならアセンブラでCから呼べる関数書いた方がすっきりするとか。
20世紀時代のことだ。
キャリーフラグが無くてオーバーフロー/アンダーフロー判定が面倒だとか、
ビットシフトはあってもローテーションが無いとか。
ジャンプ命令使うとパイプラインが初期化されるからなるべく使うなと聞いたのに
逆汗見たらジャンプしまくってるじゃないかとか。
8/16bit時代のアセンブラは1バイト、1ステート削って処理速度稼いでたんで
上記の差を補う処理が無駄に思えて・・・。
かといってインラインアセンブラ使うのはなんか違うと(インライン使うと最適化されないとも聞いてたし)。
それならアセンブラでCから呼べる関数書いた方がすっきりするとか。
20世紀時代のことだ。
342デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/03(金) 19:43:11.87ID:EWn4tN7a0 マシン語でコード書いてるときはオンレジスタ思考なのに
当時のCはデフォautoつまりオンメモリなので
ああ、やはりマシン語よりは速度が落ちる言語なんだな
コンパイラ言語とインタプリタ言語のような違いが
もう1つあるんだなって思っていた
当時のCはデフォautoつまりオンメモリなので
ああ、やはりマシン語よりは速度が落ちる言語なんだな
コンパイラ言語とインタプリタ言語のような違いが
もう1つあるんだなって思っていた
343デフォルトの名無しさん (ワッチョイ d701-LHRJ)
2019/05/03(金) 20:21:30.59ID:B4eLqFJ00 スパゲッティなものを書いてるならともかく、真っ当にサブルーチン化してたら必要悪としてレジスタ志向は早々に諦めてたわ。
局所的に最適化するならそれは別問題として解決してた。
局所的に最適化するならそれは別問題として解決してた。
344デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/03(金) 20:27:04.09ID:EWn4tN7a0 構造化なんか眼中になかったね
速度こそ純粋で美しい法律だった
速度こそ純粋で美しい法律だった
345デフォルトの名無しさん (ワッチョイ e201-VrjD)
2019/05/03(金) 20:31:26.00ID:4Ii/FXBd0346デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/03(金) 20:52:43.47ID:EWn4tN7a0 PC9801のVRAMを1ドットスクロールさせるのなんか
キャリー使って書いてたのをキャリーなしで書き直させられるのは悲しかった
キャリー使って書いてたのをキャリーなしで書き直させられるのは悲しかった
348デフォルトの名無しさん (ワッチョイ e201-VrjD)
2019/05/03(金) 22:27:22.12ID:4Ii/FXBd0 >>347
そのアルゴリズムにキャリーフラグなんて出てこないでしょ?
そのアルゴリズムにキャリーフラグなんて出てこないでしょ?
349デフォルトの名無しさん (ワッチョイ 422f-ahOC)
2019/05/03(金) 22:32:04.75ID:EWn4tN7a0 アルゴリズムという特定ワードに囚われて用語の定義の話に逸れていくつまらん展開だ
350デフォルトの名無しさん (ワッチョイ cb5f-zb9T)
2019/05/04(土) 04:19:37.51ID:qzgt3pmZ0 文字列入力を受け付けて、それをstrという変数に代入する…というプログラムを書きたいのですが、知りたいことがあって以下のような条件を課させていただきます。
・for文を使い、その中でscanf(“%c”,str[i])により1文字ずつ文字をstrの各配列に格納していくこと
・文字数は最大50文字までとし、たとえば「abcd」などのように4文字であった場合も、abcdと入力→Enterが押された時点で、その文字列をstrに代入して、その4文字を表示して完了とする
・if文を使ってそれを実現すること
#include<stdio.h>
int main(void){
int i,str[50];
for(i=0;i<50;i++){ //入力処理
scanf(“%c”,str[i]);
}
for(i=0;i<50;i++){ //出力
printf(“%c”,str[i]);
}
}
このコードだと、「abcd」と入力してEnterを押しただけでは、出力されません。(50文字入力されるまで入力受け付け状態から遷移しない)
どのように改良すればよいでしょうか?
・for文を使い、その中でscanf(“%c”,str[i])により1文字ずつ文字をstrの各配列に格納していくこと
・文字数は最大50文字までとし、たとえば「abcd」などのように4文字であった場合も、abcdと入力→Enterが押された時点で、その文字列をstrに代入して、その4文字を表示して完了とする
・if文を使ってそれを実現すること
#include<stdio.h>
int main(void){
int i,str[50];
for(i=0;i<50;i++){ //入力処理
scanf(“%c”,str[i]);
}
for(i=0;i<50;i++){ //出力
printf(“%c”,str[i]);
}
}
このコードだと、「abcd」と入力してEnterを押しただけでは、出力されません。(50文字入力されるまで入力受け付け状態から遷移しない)
どのように改良すればよいでしょうか?
351デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/04(土) 05:12:15.70ID:Yh80Q70x0 入力される度に文字のチェックしてみれば。
352デフォルトの名無しさん (ワッチョイ e201-VrjD)
2019/05/04(土) 05:15:36.04ID:eVIwB2YR0 >>350
宿題は自分でやれ
宿題は自分でやれ
353デフォルトの名無しさん (ワッチョイ 6752-ahOC)
2019/05/04(土) 05:21:50.50ID:I31OC90J0 何故誰もscanf("%c", str[i])に突っ込まないのか
354デフォルトの名無しさん (ワッチョイ 177b-VjZg)
2019/05/04(土) 05:39:39.99ID:RAMEL17i0355354 (ワッチョイ 177b-VjZg)
2019/05/04(土) 10:20:54.58ID:RAMEL17i0357デフォルトの名無しさん (アウアウウー Sabb-vI8p)
2019/05/04(土) 11:41:09.49ID:yT0QTmUja >>350
もし宿題が本当に scanf(“%c”,str[i]) と書いてある場合は先生が間違えてるので「 scanf(“%c”, &str[i]) ですよね?」とツッコミを入れてみると良い。
そうすると君はできる学生と思われて成績が上がるるか、または気に入らんやつと思われて成績が下がると思う。
もし宿題が本当に scanf(“%c”,str[i]) と書いてある場合は先生が間違えてるので「 scanf(“%c”, &str[i]) ですよね?」とツッコミを入れてみると良い。
そうすると君はできる学生と思われて成績が上がるるか、または気に入らんやつと思われて成績が下がると思う。
358デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/04(土) 13:40:22.89ID:tOD9kuurM そういえば東大では今でも
C言語が必修なのか?
まじ時代遅れの馬鹿だと思ってたら、
Cしかできない在日の馬鹿教員が
いるのだとか
C言語が必修なのか?
まじ時代遅れの馬鹿だと思ってたら、
Cしかできない在日の馬鹿教員が
いるのだとか
359デフォルトの名無しさん (ワッチョイ 0663-Cg3z)
2019/05/04(土) 13:51:43.16ID:k+B84EwL0 学歴コンプレックスの人?
360デフォルトの名無しさん (ワッチョイ 6752-ahOC)
2019/05/04(土) 14:16:41.02ID:vXlxEQ1E0 参照型とか出てくるのにそもそも参照がなにかも理解出来てないにわかオブジェクト指向が増えるよりよっぽどマシよ
なんの言語とは言わないけども
C言語なら理解しなければ先に進まないから
なんの言語とは言わないけども
C言語なら理解しなければ先に進まないから
>>358
C が分からないようでは話にならないのでは?
C が分からないようでは話にならないのでは?
362デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/04(土) 14:47:16.31ID:tOD9kuurM >>362
それは多分ありえない話でしょうね、なぜならば C は計算機言語の基本で、各種書籍ではアルゴリズムの記述に C を使うものが大半ですから
本も読めない人がトヨタの研究者とか、あなたの空想の話なのでは?
それは多分ありえない話でしょうね、なぜならば C は計算機言語の基本で、各種書籍ではアルゴリズムの記述に C を使うものが大半ですから
本も読めない人がトヨタの研究者とか、あなたの空想の話なのでは?
364デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/04(土) 15:22:49.59ID:Yh80Q70x0 アルゴリズムの勉強はpythonがいいよ
>>364
python で二分木の実装とかできますか?
python で二分木の実装とかできますか?
366デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/04(土) 16:05:03.07ID:Yh80Q70x0 >>365
できますん
できますん
367デフォルトの名無しさん (トンモー MM93-qoXq)
2019/05/04(土) 16:07:19.80ID:LvYM7SOrM >>365
そんなのはFランの仕事でしょ?
そんなのはFランの仕事でしょ?
368デフォルトの名無しさん (ワッチョイ bb87-ahOC)
2019/05/04(土) 16:13:20.77ID:8Q7/PMC20 論文の次はFランか、哀れだなw
369デフォルトの名無しさん (ワッチョイ 6752-ahOC)
2019/05/04(土) 16:49:12.48ID:vXlxEQ1E0 やっぱり相当コンプレックスの塊で頭悪いんだろうなぁ
>>366
本当ですか?ポインタがない python では無理なんじゃないですか!?
本当ですか?ポインタがない python では無理なんじゃないですか!?
371デフォルトの名無しさん (アウアウウー Sabb-vI8p)
2019/05/04(土) 18:39:36.30ID:yT0QTmUja pythonって参照ないの?
372デフォルトの名無しさん (アウアウエー Sa3a-3iRC)
2019/05/04(土) 18:43:01.66ID:gINSNBZZa 真面目に言うとpythonは基本的に全部参照渡しだね。
参照したものを直接いじれるかというとそうでない場合があるけども。
参照したものを直接いじれるかというとそうでない場合があるけども。
374はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z)
2019/05/04(土) 19:18:51.61ID:21Of2ELD0 >>370
Python に限らず動的型の言語の多くは変数に値を入れるんじゃなくて、
オブジェクトと変数の間に束縛 (bind) を作ることで成り立ってる。
辿ることでオブジェクトを参照するんだ。 実質的にポインタだよ。 むしろポインタしかない。
(小さい値 (小さい数値とか文字とか) はアロケーションを抑制するためにそのまま
ワードに突っ込むような最適化をする言語 (処理系) もあるけども。)
Python に限らず動的型の言語の多くは変数に値を入れるんじゃなくて、
オブジェクトと変数の間に束縛 (bind) を作ることで成り立ってる。
辿ることでオブジェクトを参照するんだ。 実質的にポインタだよ。 むしろポインタしかない。
(小さい値 (小さい数値とか文字とか) はアロケーションを抑制するためにそのまま
ワードに突っ込むような最適化をする言語 (処理系) もあるけども。)
>>374
Java ならば boxing でヒープにとる値とスタックに取る値とをある程度(意識せずに)変換できますね(そういう C/C++ like な意識が皆無ではない、という意味)
ただし、二分木に関してはいいたいことがまだあって、「本物の」二分木は二重ポインタ(ポインタのポインタ)が必要なのではないか?と思っています
さすがに Java には二重ポインタはない、そんな用途の言語じゃない
Python や ruby にはあるのでしょうか?
Java ならば boxing でヒープにとる値とスタックに取る値とをある程度(意識せずに)変換できますね(そういう C/C++ like な意識が皆無ではない、という意味)
ただし、二分木に関してはいいたいことがまだあって、「本物の」二分木は二重ポインタ(ポインタのポインタ)が必要なのではないか?と思っています
さすがに Java には二重ポインタはない、そんな用途の言語じゃない
Python や ruby にはあるのでしょうか?
376デフォルトの名無しさん (アウアウエー Sa3a-3iRC)
2019/05/04(土) 20:55:58.63ID:cZ5M6KFWa 二重ポインタを何に使う?
Cだと引数でノードのオブジェクトを返す辺りか?
Cだと引数でノードのオブジェクトを返す辺りか?
>>376
ノードを追加する関数add の引数を
add(&root, Object)
ってするでしょ?&root ってことは、struct *node のアドレス、すなわち struct node ** が必要なのではないかと
ノードを追加する関数add の引数を
add(&root, Object)
ってするでしょ?&root ってことは、struct *node のアドレス、すなわち struct node ** が必要なのではないかと
378デフォルトの名無しさん (アウアウエー Sa3a-3iRC)
2019/05/04(土) 21:43:09.25ID:cZ5M6KFWa >>377
わからんが、Cでも戻り値でポインタを返せばいいんじゃないか?
わからんが、Cでも戻り値でポインタを返せばいいんじゃないか?
379はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z)
2019/05/04(土) 21:46:08.02ID:21Of2ELD0 >>375
参照を持つオブジェクトへの参照を持てるんだから、事実上の二重ポインタとして使えるよ。
参照を持つオブジェクトへの参照を持てるんだから、事実上の二重ポインタとして使えるよ。
380デフォルトの名無しさん (ワッチョイ bb87-ahOC)
2019/05/04(土) 21:57:52.42ID:8Q7/PMC20 二重までは使うんだよなあ
三重をなぜ使わないか、説明できるか?w
三重をなぜ使わないか、説明できるか?w
381デフォルトの名無しさん (ワッチョイ d701-o1CB)
2019/05/04(土) 22:09:57.55ID:RtDHzLy60 ガベージコレクションと裸のポインタって相性が悪いような
382デフォルトの名無しさん (ワッチョイ e201-VrjD)
2019/05/04(土) 22:15:35.23ID:eVIwB2YR0 >>378
2個返したい時とか、戻り値は成功かどうかのコードを返したいとか
2個返したい時とか、戻り値は成功かどうかのコードを返したいとか
383デフォルトの名無しさん (アウアウエー Sa3a-3iRC)
2019/05/04(土) 23:07:46.23ID:cZ5M6KFWa 道はいろいろあると思うが、せっかくあるんだから構造体使って皆くるんじゃえと思うよ。
384デフォルトの名無しさん (アウアウウー Sabb-vI8p)
2019/05/05(日) 00:20:41.66ID:nwgMKC8Ra 微妙にスレチのように思うので続きはJava初心者のスレでやった方が良いのではないか?
まあ人に聞かなくても Java を勉強して Java の API のソースを読めばそういうのをどうしているのかは何れわかると思うけどね。
まあ人に聞かなくても Java を勉強して Java の API のソースを読めばそういうのをどうしているのかは何れわかると思うけどね。
385デフォルトの名無しさん (ワッチョイ e22c-4xtZ)
2019/05/05(日) 00:21:53.66ID:tvdtPjB+0 Ruby での、Jaggy 配列は、
ary = [ ] # 配列の配列
ary.push [ "a" ]
ary.push [ 1, 2 ]
p ary #=> [["a"], [1, 2]]
C/C++ 以外のたいていの言語では、数字などのprimitive 以外は、すべて参照。
(primitiveは参照にするよりも、その場所へ値を埋め込んだ方が速い)
外側の配列は、内側の配列の参照を持っている。
内側の配列は、(primitive以外の)各要素の参照を持っている
primitive以外は、コピーしても参照がコピーされるだけで、値はコピーされない。
つまり、同一インスタンスを指す。
別のインスタンスは作られない
new されていなければ、インスタンスは作られない。
代入しただけでは、参照がコピーされるだけ
これを、shallow copy (浅いコピー)と呼ぶ(同一インスタンス)。
new して、別のインスタンスを作ることを、deep copy (深いコピー)と呼ぶ(別のインスタンス)
ary = [ ] # 配列の配列
ary.push [ "a" ]
ary.push [ 1, 2 ]
p ary #=> [["a"], [1, 2]]
C/C++ 以外のたいていの言語では、数字などのprimitive 以外は、すべて参照。
(primitiveは参照にするよりも、その場所へ値を埋め込んだ方が速い)
外側の配列は、内側の配列の参照を持っている。
内側の配列は、(primitive以外の)各要素の参照を持っている
primitive以外は、コピーしても参照がコピーされるだけで、値はコピーされない。
つまり、同一インスタンスを指す。
別のインスタンスは作られない
new されていなければ、インスタンスは作られない。
代入しただけでは、参照がコピーされるだけ
これを、shallow copy (浅いコピー)と呼ぶ(同一インスタンス)。
new して、別のインスタンスを作ることを、deep copy (深いコピー)と呼ぶ(別のインスタンス)
386デフォルトの名無しさん (ワッチョイ 8252-M0pk)
2019/05/05(日) 00:37:14.86ID:RPhfdkos0 >>385
馬鹿は消えろ
馬鹿は消えろ
>>378
それは無駄な代入が発生するでしょう?
それは無駄な代入が発生するでしょう?
>>380
余裕で三重ポインタなどほいほいと使いますよ
https://mevius.5ch.net/test/read.cgi/tech/1434079972/26
void prep_exe(char *sttp, char **path, char ***argv)
char **argv を使うことが理解できるのだったら「argv のアドレスを渡す」みたいな場合に渡された関数側では三重ポインタを使うことになるでしょう
余裕で三重ポインタなどほいほいと使いますよ
https://mevius.5ch.net/test/read.cgi/tech/1434079972/26
void prep_exe(char *sttp, char **path, char ***argv)
char **argv を使うことが理解できるのだったら「argv のアドレスを渡す」みたいな場合に渡された関数側では三重ポインタを使うことになるでしょう
389デフォルトの名無しさん (ワッチョイ 9b6d-ahOC)
2019/05/05(日) 09:04:36.94ID:hoO1o10+0 >>388
それcodepadだろ? 使いさえすればいいって話じゃなくて
それcodepadだろ? 使いさえすればいいって話じゃなくて
>>389
無論使いさえすればいい、というわけではなく、この例では小さなシェルを実装しており、シェルのパイプ機能を実装するのに三重ポインタを使ったのです
無論使いさえすればいい、というわけではなく、この例では小さなシェルを実装しており、シェルのパイプ機能を実装するのに三重ポインタを使ったのです
391デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 09:21:39.41ID:2T/oydys0 >>387
引数を介すと代入が減るってこと?
引数を介すと代入が減るってこと?
393デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/05(日) 10:05:07.93ID:bV6goPu10 呼び出しの前後で、ptrの値が 同じかもしれない、場合よっては変わるかもしれない関数
ptr = func1(ptr, opt); と func2(&ptr, opt);
うーんどっちも使うな…
ptr = func1(ptr, opt); と func2(&ptr, opt);
うーんどっちも使うな…
394デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 10:28:11.80ID:2T/oydys0 >>392
じゃあ、一時変数に代入しとけば?
じゃあ、一時変数に代入しとけば?
>>394
シンプルな記述ができるのに、わざと複雑な書き方にするのは問題なのでは?
シンプルな記述ができるのに、わざと複雑な書き方にするのは問題なのでは?
397デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 10:32:32.58ID:2T/oydys0399デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/05(日) 10:35:01.06ID:bV6goPu10 エラー伝達に NULL を使う realloc は即代入するとお漏らししちゃうし
あれ、なん引数書き戻しにしなかったんだろう? 素朴な疑問
あれ、なん引数書き戻しにしなかったんだろう? 素朴な疑問
400デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 10:35:57.12ID:2T/oydys0 >>398
代入されているのかされていないのか、わからない方が良いってこと?
代入されているのかされていないのか、わからない方が良いってこと?
401デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/05(日) 10:36:08.55ID:bV6goPu10 ×あれ、なん引数書き戻しに
○あれ、なんで引数書き戻しに
○あれ、なんで引数書き戻しに
402デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 10:41:29.60ID:2T/oydys0404デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 11:31:24.71ID:2T/oydys0 >>403
だから、関数の内部的に何してるのかわからんのが良いってことじゃない?
だから、関数の内部的に何してるのかわからんのが良いってことじゃない?
406デフォルトの名無しさん (スプッッ Sd22-ph/v)
2019/05/05(日) 11:38:01.66ID:orE8GGyod >>406
非常に大きな二分木(ノートが1億個)があって、そのはるか先端で malloc() してそこで代入すればいいだけなのに、
その先端から root に戻ってくる途中の30箇所ほどで、軒並み全部のノードで「必要のない無駄な代入」をするのですか?
>それしか使えない場面でのみ使うべき
この二分木を実装する、というのがまさしく「それしか使えない場面」なのですよ
非常に大きな二分木(ノートが1億個)があって、そのはるか先端で malloc() してそこで代入すればいいだけなのに、
その先端から root に戻ってくる途中の30箇所ほどで、軒並み全部のノードで「必要のない無駄な代入」をするのですか?
>それしか使えない場面でのみ使うべき
この二分木を実装する、というのがまさしく「それしか使えない場面」なのですよ
408デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 11:45:42.03ID:2T/oydys0 >>405
つまり、後者でmallocしてnullが返った時はそれを代入するってことですか?同じじゃん。
つまり、後者でmallocしてnullが返った時はそれを代入するってことですか?同じじゃん。
409デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 11:47:06.67ID:2T/oydys0412デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 11:57:28.30ID:2T/oydys0413デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 11:58:36.27ID:2T/oydys0 >>411
代入回数比較してよ。頼むよ。
代入回数比較してよ。頼むよ。
>>412
ちがいますね
問題は、malloc() したときだけ代入し、malloc() しなかったときには代入しない、という記述を正確にかけるかどうか…@、にかかっています。
>>413
>>407 に書いておきました、1億ノードの二分木にて各ノードが最適に配置されているとして、削ることのできる代入は malloc() 一回に対して 30 個の代入になります
>>393 ptr = func1(ptr, opt); では 1億ノードの二分木にノードを追加する際、30個の無駄な代入が発生します
代入のコストは大したことがない、にしても、アルゴリズムを正確に記述できないのは問題ですね
洗練された記述とはそういうものではないでしょうか
ちがいますね
問題は、malloc() したときだけ代入し、malloc() しなかったときには代入しない、という記述を正確にかけるかどうか…@、にかかっています。
>>413
>>407 に書いておきました、1億ノードの二分木にて各ノードが最適に配置されているとして、削ることのできる代入は malloc() 一回に対して 30 個の代入になります
>>393 ptr = func1(ptr, opt); では 1億ノードの二分木にノードを追加する際、30個の無駄な代入が発生します
代入のコストは大したことがない、にしても、アルゴリズムを正確に記述できないのは問題ですね
洗練された記述とはそういうものではないでしょうか
415デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 12:48:51.19ID:2T/oydys0416デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 12:52:54.83ID:2T/oydys0 仕事では戻り値に成功失敗が入ってオブジェクトのポインタは引数に来るような関数は使うけどさ、
結局どっちもチェックするよ。信じられねえもんな。
結局どっちもチェックするよ。信じられねえもんな。
>>415
malloc() が成功したか失敗したかは、今の話には関係ありません
今関係があるのは、
malloc() したときだけ代入し、malloc() しなかったときには代入しない、という記述を正確にかけるかどうか…@
です
malloc() が成功したか失敗したかは、今の話には関係ありません
今関係があるのは、
malloc() したときだけ代入し、malloc() しなかったときには代入しない、という記述を正確にかけるかどうか…@
です
418デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 13:42:25.11ID:2T/oydys0420デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 13:55:35.88ID:2T/oydys0 >>419
戻り値はvoidってこと?
戻り値はvoidってこと?
422デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/05(日) 14:08:06.37ID:2T/oydys0 >>421
いや、必須なのでは?
いや、必須なのでは?
424デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/05(日) 14:33:08.37ID:bV6goPu10 異常は戻りをNULLにするパティーンで
node_t *func3(node_t**, ...)
正常だった場合に ptr = func3(&ptr, opt); と書けるしw (無駄な努力の可能性
node_t *func3(node_t**, ...)
正常だった場合に ptr = func3(&ptr, opt); と書けるしw (無駄な努力の可能性
425デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/05(日) 14:34:34.27ID:bV6goPu10 って書いたけど鼻から悪魔踏みそうな嫌らしさがあるな…
>>424
そのパターンでは、異常値 NULL をうっかりノードに登録してしまうと、そのノードより下が浮いてしまい危ないですね、ま、異常系をミスったままリリースしてしまうことも私はよくやりますけど
そのパターンでは、異常値 NULL をうっかりノードに登録してしまうと、そのノードより下が浮いてしまい危ないですね、ま、異常系をミスったままリリースしてしまうことも私はよくやりますけど
427デフォルトの名無しさん (アウアウカー Sa47-3iRC)
2019/05/05(日) 15:42:24.13ID:8x8syc+Fa >>423
いや、必須でしょ?代入消せるんだから。消さないと。
いや、必須でしょ?代入消せるんだから。消さないと。
429デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/05(日) 18:13:23.13ID:bV6goPu10 423の文意は
「void が必須なわけではなく
引数と同じ型のポインタを戻すことはせずに、別の目的の何か、たとえばエラーコードとして int を戻す
なんてのはアリでしょ?」
ってことだと思うけど
「void が必須なわけではなく
引数と同じ型のポインタを戻すことはせずに、別の目的の何か、たとえばエラーコードとして int を戻す
なんてのはアリでしょ?」
ってことだと思うけど
430デフォルトの名無しさん (アウアウエー Sa3a-3iRC)
2019/05/05(日) 18:42:49.42ID:dOx23ziba returnしちゃだめでしょ
代入が駄目ってくらいだから
代入が駄目ってくらいだから
431デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/05(日) 18:56:43.02ID:bV6goPu10 「代入不要なケースでも代入記述を要求するのはよろしくない」スタイルの延長だと
戻り値評価も破棄可能ならそうすべき って話か
戻り値評価も破棄可能ならそうすべき って話か
434はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z)
2019/05/05(日) 19:13:46.27ID:TxpPZKKr0 あ、ごめん、ミスって文章を書く前に投稿してもうた。
>>407
あらためて確認するが、この代入を「無駄」としているのはアルゴリズムの表現の上では不要なことをしているという
意味の上での無駄であって、性能上の無駄という意味ではないんだね?
そして、アルゴリズムを正しく表現する上では (ときには二重・三重のも含めて) ポインタが必要だと。
>>407
あらためて確認するが、この代入を「無駄」としているのはアルゴリズムの表現の上では不要なことをしているという
意味の上での無駄であって、性能上の無駄という意味ではないんだね?
そして、アルゴリズムを正しく表現する上では (ときには二重・三重のも含めて) ポインタが必要だと。
>>434
>性能上の無駄という意味ではないんだね?
性能の上で分析するとなると、間接参照にてデータをロード、ストアするコストと値をストアするコストを天秤にかける、ことになりますね
なるほど、その点を言いたくて、でも言いたくなくて、しつこく絡んでいたのですか…
私は二重ポインタでの表現の方がトータルでお得だ、とは思ってはいますが、これまで表に出ている私の発言は、あえてそこには踏み込まず(だって性能の話はうかつに断言できませんからね…)、
おっしゃるとおり「アルゴリズムの表現の上では不要なことをしている」に留まっています
>性能上の無駄という意味ではないんだね?
性能の上で分析するとなると、間接参照にてデータをロード、ストアするコストと値をストアするコストを天秤にかける、ことになりますね
なるほど、その点を言いたくて、でも言いたくなくて、しつこく絡んでいたのですか…
私は二重ポインタでの表現の方がトータルでお得だ、とは思ってはいますが、これまで表に出ている私の発言は、あえてそこには踏み込まず(だって性能の話はうかつに断言できませんからね…)、
おっしゃるとおり「アルゴリズムの表現の上では不要なことをしている」に留まっています
436はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z)
2019/05/05(日) 20:57:45.43ID:TxpPZKKr0 >>435
たとえば数学上の表記なら「A=1 であり B=1 のとき A=B は真である」と「1=1 は真である」には何も差が無い。
途中で名前を付けるのは人間に対する便宜であって、無駄な「操作」は存在しない。
代入が無駄たりうるのは C のパラダイムだからなので、
「C で表現するにはポインタが必要だし、代入では不適当だ」は事実であっても
「ポインタが無い言語では表現できない」というわけではないよ。
C の低級な世界でまともな意味論を表現しようとするのがそもそもの間違いだろう。
たとえば数学上の表記なら「A=1 であり B=1 のとき A=B は真である」と「1=1 は真である」には何も差が無い。
途中で名前を付けるのは人間に対する便宜であって、無駄な「操作」は存在しない。
代入が無駄たりうるのは C のパラダイムだからなので、
「C で表現するにはポインタが必要だし、代入では不適当だ」は事実であっても
「ポインタが無い言語では表現できない」というわけではないよ。
C の低級な世界でまともな意味論を表現しようとするのがそもそもの間違いだろう。
>>436
>「ポインタが無い言語では表現できない」というわけではないよ。
それは理解しています、なぜなら
Java での二分木の実装を検討したことがある(探せば2ch過去ログにあるかもしれません)
Java にはポインタはありませんが、実装できるかできないか、といえば「できる」の方に入りますね
>「ポインタが無い言語では表現できない」というわけではないよ。
それは理解しています、なぜなら
Java での二分木の実装を検討したことがある(探せば2ch過去ログにあるかもしれません)
Java にはポインタはありませんが、実装できるかできないか、といえば「できる」の方に入りますね
438はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z)
2019/05/05(日) 21:54:26.85ID:TxpPZKKr0439デフォルトの名無しさん (ワッチョイ 2f05-S4IJ)
2019/05/05(日) 23:34:40.25ID:RXFRr1FQ0 C言語のプログラム内で確保していいメモリってユーザー空間の仮想メモリ上限いっぱいまで取っていいの?
複数の変数a, b, c, ・・・の値を表示するだけのプログラムを時系列に並べて考えてみるんだけど
0. 実行ファイルを起動する
1. 32bitプロセスが生成される ←たとえば32bit windowsだとユーザー空間とカーネル空間で計4GBの仮想メモリが確保される
2. int a; ←仮想メモリ(1で確保されたユーザー空間)上にaが確保される
int b; ←上に類似
int c; ←上に類似
・・・・・(複数の変数の宣言やprintf関数が続く)
こんな感じなんだろうけど
上記の2でユーザー空間いっぱいになるまで変数を宣言してもいいの?
複数の変数a, b, c, ・・・の値を表示するだけのプログラムを時系列に並べて考えてみるんだけど
0. 実行ファイルを起動する
1. 32bitプロセスが生成される ←たとえば32bit windowsだとユーザー空間とカーネル空間で計4GBの仮想メモリが確保される
2. int a; ←仮想メモリ(1で確保されたユーザー空間)上にaが確保される
int b; ←上に類似
int c; ←上に類似
・・・・・(複数の変数の宣言やprintf関数が続く)
こんな感じなんだろうけど
上記の2でユーザー空間いっぱいになるまで変数を宣言してもいいの?
440はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4e3e-Cg3z)
2019/05/05(日) 23:38:14.20ID:TxpPZKKr0 >>439
いいけど、もっと効率的な方法があるならそれに越したことは無いっていうそれだけの話
いいけど、もっと効率的な方法があるならそれに越したことは無いっていうそれだけの話
441デフォルトの名無しさん (ワッチョイ 2f05-S4IJ)
2019/05/05(日) 23:41:29.98ID:RXFRr1FQ0 簡潔に書くと
安全のためにはどこまでメモリを使っていいの?
そのメモリの大きさはユーザー空間の上限と同じなの?
という室問なのに長くなってしまた
安全のためにはどこまでメモリを使っていいの?
そのメモリの大きさはユーザー空間の上限と同じなの?
という室問なのに長くなってしまた
442デフォルトの名無しさん (ワッチョイ 2f05-S4IJ)
2019/05/05(日) 23:47:50.76ID:RXFRr1FQ0 >>440
ありがとう
ただ初心者なので効率性を目指すにはきつい部分が出てくる
そうなるとメモリの残量を監視する、つまり残量の値を取得する必要があるわけだけど
これは一般的にはwindowsのAPIを使うのが普通なの?
(そんなものがあるのかは知らない)
ありがとう
ただ初心者なので効率性を目指すにはきつい部分が出てくる
そうなるとメモリの残量を監視する、つまり残量の値を取得する必要があるわけだけど
これは一般的にはwindowsのAPIを使うのが普通なの?
(そんなものがあるのかは知らない)
443デフォルトの名無しさん (ワッチョイ 8252-M0pk)
2019/05/05(日) 23:52:54.47ID:RPhfdkos0 >>442
スタックとヒープという概念は知ってる?知らなければまずそれを調べてみて。
それと、初心者なら効率を求める前に正しくメモリ管理を扱えるようになる必要があるが、その時点で残量は気にする必要はないぞ。
スタックとヒープという概念は知ってる?知らなければまずそれを調べてみて。
それと、初心者なら効率を求める前に正しくメモリ管理を扱えるようになる必要があるが、その時点で残量は気にする必要はないぞ。
444デフォルトの名無しさん (ワッチョイ 2f05-S4IJ)
2019/05/05(日) 23:59:16.82ID:RXFRr1FQ0 FIFOだとかナントカ程度にしか。
「〜〜領域」という幾つかの用語がOSとかの環境が違っても
全く共通のものなのかよく分からないから正直スルーしてる
「〜〜領域」という幾つかの用語がOSとかの環境が違っても
全く共通のものなのかよく分からないから正直スルーしてる
445デフォルトの名無しさん (ワッチョイ e22c-4xtZ)
2019/05/06(月) 05:38:27.60ID:wr9bFPpT0 >>414
>1億ノードの二分木にノードを追加する際、30個の無駄な代入が発生します
2^10 = 約1,000 千
2^20 = 約1,000,000 百万
2^30 = 約1,000,000,000 十億
>>441
Java VM の初期値は、256MB とか。
それよりも大きいと強制終了されるが、起動時に、512MBに設定できる
たぶん、4GB の仮想メモリでも、ユーザー空間3GB・カーネル空間1GBぐらいだろ
それ以上のデータは、動画みたいにstream になる。
バッファサイズ、例えば、1MB を読んでは捨てて、次の1MB読んでは捨てて、の繰り返し
読み込んだデータを使ったら、すぐに捨てないといけない。
ユーザー空間に、空きを作らないといけない
>1億ノードの二分木にノードを追加する際、30個の無駄な代入が発生します
2^10 = 約1,000 千
2^20 = 約1,000,000 百万
2^30 = 約1,000,000,000 十億
>>441
Java VM の初期値は、256MB とか。
それよりも大きいと強制終了されるが、起動時に、512MBに設定できる
たぶん、4GB の仮想メモリでも、ユーザー空間3GB・カーネル空間1GBぐらいだろ
それ以上のデータは、動画みたいにstream になる。
バッファサイズ、例えば、1MB を読んでは捨てて、次の1MB読んでは捨てて、の繰り返し
読み込んだデータを使ったら、すぐに捨てないといけない。
ユーザー空間に、空きを作らないといけない
446デフォルトの名無しさん (ワッチョイ 8252-M0pk)
2019/05/06(月) 06:20:53.21ID:Geq8Gq1G0 >>445
いつものRubyバカだろ。いい加減な知識でC言語のメモリの話題に口を挟むのはやめろ。この板になれている者からすれば「またいつものか...」ですむが、初心者にとっては害悪でしかないから消えろ。
いつものRubyバカだろ。いい加減な知識でC言語のメモリの話題に口を挟むのはやめろ。この板になれている者からすれば「またいつものか...」ですむが、初心者にとっては害悪でしかないから消えろ。
447デフォルトの名無しさん (ワッチョイ 8252-M0pk)
2019/05/06(月) 06:25:32.64ID:Geq8Gq1G0 >>444
組み込みとかの特殊な環境では例外もあるけど、基本的には環境によらずC言語で必須の概念だからスルーせずにちゃんと調べるべき。
組み込みとかの特殊な環境では例外もあるけど、基本的には環境によらずC言語で必須の概念だからスルーせずにちゃんと調べるべき。
448デフォルトの名無しさん (ワッチョイ 06d2-R0y6)
2019/05/06(月) 08:39:59.60ID:s1ulBxFy0 >439
>上記の2でユーザー空間いっぱいになるまで変数を宣言してもいいの?
他のプロセスがスワップ起こして重くなるから止めろって言いたい。
>上記の2でユーザー空間いっぱいになるまで変数を宣言してもいいの?
他のプロセスがスワップ起こして重くなるから止めろって言いたい。
449デフォルトの名無しさん (ワッチョイ 2f05-73UM)
2019/05/06(月) 10:14:49.95ID:Om5TJBQR0450デフォルトの名無しさん (ワッチョイ 2f05-73UM)
2019/05/06(月) 10:19:59.43ID:Om5TJBQR0 >読み込んだデータを使ったら、すぐに捨てないといけない
データをガンガン読み込んでいくようなプログラムだと「使ったらすぐ捨てる」のが鉄則か
データをガンガン読み込んでいくようなプログラムだと「使ったらすぐ捨てる」のが鉄則か
451デフォルトの名無しさん (ワッチョイ d701-LHRJ)
2019/05/06(月) 10:40:24.77ID:F7BEaxMm0 >>439
ユーザープロセスなのでカーネル空間はマッピングされないよ。プロセス管理のための領域はカーネル空間に多少は確保されるとは思うけど、それはユーザープロセス用ではないし。
ページサイズの関係で効率的に確保できるかどうかは別問題だけど仮想メモリ領域いっぱいまで取れるか否かと言えば取ることはできる。
実際にそんなことしたらスワップ発生しまくりでまともに動かないとは思うけど。
ユーザープロセスなのでカーネル空間はマッピングされないよ。プロセス管理のための領域はカーネル空間に多少は確保されるとは思うけど、それはユーザープロセス用ではないし。
ページサイズの関係で効率的に確保できるかどうかは別問題だけど仮想メモリ領域いっぱいまで取れるか否かと言えば取ることはできる。
実際にそんなことしたらスワップ発生しまくりでまともに動かないとは思うけど。
452デフォルトの名無しさん (ワッチョイ 7fe9-3iRC)
2019/05/06(月) 12:43:21.39ID:53K/0wkW0 実装としてはだいたいcopy on writeだから、確保だけだったら特に問題発生しないよ
453デフォルトの名無しさん (ブーイモ MM3e-iz+S)
2019/05/06(月) 16:08:26.90ID:95XsbNbMM454デフォルトの名無しさん (ワッチョイ 4321-QjK4)
2019/05/06(月) 21:20:46.06ID:lSipB+Y80 配列にある16進数アスキーを
整数型変数に数値として入れたいのですが、上手くいきません。
valの値をprintfで出力しても「0」になります。
rbuf[5]の中身は「0xDC」
rbuf[6]の中身は「0x18」でした。(printfで出力してみたところ。)
#include <stdio.h>
unsigned char sbuf[255] = {'\0'}; //送信バッファ
unsigned char rbuf[255] = {'\0'}; //受信バッファ
unsigned char work[10] = {'\0'}; //ワークバッファ
unsigned int val = 0; //値
work[0]=rbuf[5];
work[1]=rbuf[6];
work[2]='\0';
sscanf((char *)work, "%x", &val);
よろしくお願いします。
整数型変数に数値として入れたいのですが、上手くいきません。
valの値をprintfで出力しても「0」になります。
rbuf[5]の中身は「0xDC」
rbuf[6]の中身は「0x18」でした。(printfで出力してみたところ。)
#include <stdio.h>
unsigned char sbuf[255] = {'\0'}; //送信バッファ
unsigned char rbuf[255] = {'\0'}; //受信バッファ
unsigned char work[10] = {'\0'}; //ワークバッファ
unsigned int val = 0; //値
work[0]=rbuf[5];
work[1]=rbuf[6];
work[2]='\0';
sscanf((char *)work, "%x", &val);
よろしくお願いします。
455デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/06(月) 21:29:36.69ID:v87Zm/5a0 sscanf の %x は、文字列で記述された数字+アルファベットの列を 16進数として抜き出す
sscanf("10", "%x", &val); → val の値は 10進で16 となる
0xDC 0x18 の並びから どういう整数値にしたいんだろうか?
sscanf("10", "%x", &val); → val の値は 10進で16 となる
0xDC 0x18 の並びから どういう整数値にしたいんだろうか?
456454 (ワッチョイ 4321-QjK4)
2019/05/06(月) 21:38:34.55ID:lSipB+Y80457デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/06(月) 21:40:18.62ID:v87Zm/5a0 >>456 それなら
val = rbuf[5]; じゃあかんの?
val = rbuf[5]; じゃあかんの?
458454 (ワッチョイ 4321-QjK4)
2019/05/06(月) 21:50:08.40ID:lSipB+Y80459デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/06(月) 21:54:12.13ID:v87Zm/5a0460デフォルトの名無しさん (ワッチョイ f701-EPtf)
2019/05/06(月) 21:55:43.20ID:v87Zm/5a0 (俺がちゃんと >>456 を読めてなかった説 val=0xDC18 って書いてるやんけw)
461デフォルトの名無しさん (アウアウウー Sabb-vI8p)
2019/05/06(月) 22:06:19.06ID:NYoOX9LAa462デフォルトの名無しさん (アウアウウー Sabb-vI8p)
2019/05/06(月) 22:08:02.81ID:NYoOX9LAa などと、ゆっくり書いていたら既に解決か・・・
463デフォルトの名無しさん (ワッチョイ 4321-QjK4)
2019/05/06(月) 22:09:16.82ID:lSipB+Y80464デフォルトの名無しさん (ワッチョイ e22c-4xtZ)
2019/05/07(火) 06:48:35.98ID:/Z9tG+PY0 ASCII は、7 bit キャラだろ
欧州文字コードなら、8 bitとか
欧州文字コードなら、8 bitとか
465デフォルトの名無しさん (ワッチョイ 23d2-R0y6)
2019/05/07(火) 15:31:36.79ID:gGAOuhJk0 BASIC時代 文字→文字コード変換関数が ASC(文字) だったな。
466デフォルトの名無しさん (ワッチョイ d701-LHRJ)
2019/05/08(水) 20:11:19.53ID:w7dyIR3e0 逆はCHR$(コード)だったな。
467デフォルトの名無しさん (ワッチョイ 9b6d-ahOC)
2019/05/08(水) 22:02:13.36ID:LqpjdKM80 「なんで朝潮?」と思ってしまった当時の俺w
468デフォルトの名無しさん (ワッチョイ 7f7c-gMth)
2019/05/09(木) 08:32:10.12ID:IVg2TokP0 わらってよりとも というのは、当時の人気番組名をもじったものだよ
469デフォルトの名無しさん (ワッチョイ 9f35-AilG)
2019/05/09(木) 12:40:11.38ID:J26JobOx0470デフォルトの名無しさん (ブーイモ MM9b-f8ez)
2019/05/09(木) 20:40:23.75ID:axmpki24M 「はじめてのC」なら買う
471デフォルトの名無しさん (ワッチョイ ff63-gMth)
2019/05/09(木) 22:18:17.14ID:fgRKvhjn0 その本の名前、買うときに恥ずかしいw
472デフォルトの名無しさん (ワッチョイ 9f79-ScLU)
2019/05/09(木) 23:03:35.49ID:vEdVh+9n0 質問です
文字列の配列
char matrix[Y][X]を関数に引数として渡して、渡した先の関数でtxtファイルに出力したい。
YとXはその時々によって違う値でmatrixは文字列の配列だけど1行ごとに'\0'が入っていないとき、渡した先の関数でYとXをどうやれば参照できますか?
例えば
matrix = {{‘a’, ‘b’, ‘c’}, {‘d’, ‘e’, ‘f’}};
みたいな配列です
文字列の配列
char matrix[Y][X]を関数に引数として渡して、渡した先の関数でtxtファイルに出力したい。
YとXはその時々によって違う値でmatrixは文字列の配列だけど1行ごとに'\0'が入っていないとき、渡した先の関数でYとXをどうやれば参照できますか?
例えば
matrix = {{‘a’, ‘b’, ‘c’}, {‘d’, ‘e’, ‘f’}};
みたいな配列です
473デフォルトの名無しさん (アウアウエー Sadf-NBbm)
2019/05/10(金) 00:00:40.06ID:IBOrEgMWa X(配列のサイズ)を共有してやればいいんじゃないかな
474デフォルトの名無しさん (ワッチョイ ff63-gMth)
2019/05/10(金) 00:14:05.05ID:Ojl9YgLP0 >>472
matrixのアドレスと共にX、Yの値を渡さないと無理
matrixのアドレスと共にX、Yの値を渡さないと無理
475デフォルトの名無しさん (ワッチョイ bf02-XC4S)
2019/05/10(金) 03:11:16.60ID:+vHN15fT0476デフォルトの名無しさん (ワッチョイ 9f79-ScLU)
2019/05/10(金) 09:26:09.21ID:bwAvNWKg0 >>474
やっぱり配列のサイズ一緒に渡さないとだためですか
やっぱり配列のサイズ一緒に渡さないとだためですか
477デフォルトの名無しさん (アウアウウー Sa1b-wdoq)
2019/05/10(金) 09:44:04.32ID:0Zlxa6bHa そう。他の言語だと裏でこっそり渡すようになっていたりしてプログラムに書かなくても動くかも知れないが、Cはそこまでやってくれない。
478デフォルトの名無しさん (ワッチョイ ff69-PnGR)
2019/05/10(金) 10:05:05.80ID:hw8N8wYC0 標準関数も一次元配列ですら大きさを渡してるからねー
(文字列は '\0' が終端である という了解を持って大きさを不要にしているだけ)
(文字列は '\0' が終端である という了解を持って大きさを不要にしているだけ)
479デフォルトの名無しさん (スップ Sdbf-63hD)
2019/05/10(金) 12:34:03.34ID:zZfQYrbwd >>475
URL張って解党した気になってるアスペルガーのカスがスレ来んな
URL張って解党した気になってるアスペルガーのカスがスレ来んな
480デフォルトの名無しさん (ワッチョイ bf02-y0Vo)
2019/05/10(金) 23:50:49.39ID:svzEPJh90 え?読んでもわからなかったの?
481デフォルトの名無しさん (ワッチョイ d7f6-y0Vo)
2019/05/11(土) 07:43:24.28ID:glRpLuyC0 確かにつまらんね
リンクだけとかググレカスとか
せっかく掲示板にいるのに対話がないのは
リンクだけとかググレカスとか
せっかく掲示板にいるのに対話がないのは
482はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-gMth)
2019/05/11(土) 09:55:06.58ID:GtXmrqj00 >>481
リンクを示すのも、ググればわかるようなことにググれというのも対話だよ。
対話を終わらせてるのはお前だろ。
リンク先を見て意味がわからんかったならどうわからなかったか、
よりよい説明があると思うならそれを示してもいい。
望むことだけ欲しいというのは対話とは言えんよ。
リンクを示すのも、ググればわかるようなことにググれというのも対話だよ。
対話を終わらせてるのはお前だろ。
リンク先を見て意味がわからんかったならどうわからなかったか、
よりよい説明があると思うならそれを示してもいい。
望むことだけ欲しいというのは対話とは言えんよ。
483デフォルトの名無しさん (ワッチョイ d7f6-y0Vo)
2019/05/11(土) 10:34:34.75ID:glRpLuyC0484デフォルトの名無しさん (ワッチョイ 57dc-y0Vo)
2019/05/11(土) 11:46:55.45ID:0ygzdBDA0 ID:glRpLuyC0が対話する気なさすぎて草w
485デフォルトの名無しさん (ワッチョイ ff63-gMth)
2019/05/11(土) 12:23:55.76ID:9iCvmH6s0 ここは質疑を行うスレであって
対話したり、雑談したりする場ではない
対話したり、雑談したりする場ではない
486デフォルトの名無しさん (ワッチョイ 9f2d-y0Vo)
2019/05/11(土) 19:10:51.09ID:HOBfdmGr0 Cの上位互換(?)として、C++がありますが。C++は覚えた方がいいですか?
もしくは、CとC++を両方覚えたら、Cは不要になり、C++でコードを書くようになりますか?
C++でできることはCでもできるように見えますので、ならCだけでいいようにも思えたり。
もしくは、CとC++を両方覚えたら、Cは不要になり、C++でコードを書くようになりますか?
C++でできることはCでもできるように見えますので、ならCだけでいいようにも思えたり。
>>486
C++ は最近規格の改定がすすみ、いろんなことが C++ の枠内でできるようになりました
C++ は最近規格の改定がすすみ、いろんなことが C++ の枠内でできるようになりました
488デフォルトの名無しさん (ワッチョイ 375f-PSXp)
2019/05/11(土) 19:21:03.92ID:2v2BzL6t0 >>486
言っておくが、python,C++,Java,javascript,C#,shellでできる事はC言語でも出来る
更に君が作ろうとしてるものや、やりたいことは、もう誰かが作ってる
ましてや大規模になると、googleとかamazonと戦う羽目にもなる
それが嫌ならプログラミングなんて辞めとけ
言っておくが、python,C++,Java,javascript,C#,shellでできる事はC言語でも出来る
更に君が作ろうとしてるものや、やりたいことは、もう誰かが作ってる
ましてや大規模になると、googleとかamazonと戦う羽目にもなる
それが嫌ならプログラミングなんて辞めとけ
489デフォルトの名無しさん (ワッチョイ 9f2d-y0Vo)
2019/05/11(土) 19:32:35.19ID:HOBfdmGr0 >>487-488
了解です、ありがとうございます
了解です、ありがとうございます
490デフォルトの名無しさん (ワッチョイ d7f6-y0Vo)
2019/05/11(土) 21:07:19.81ID:glRpLuyC0491はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-gMth)
2019/05/11(土) 21:28:03.11ID:GtXmrqj00492デフォルトの名無しさん (アウアウウー Sa1b-wdoq)
2019/05/11(土) 22:15:36.12ID:YLmnNEXIa きっと寂しいんだよ。
493デフォルトの名無しさん (ワッチョイ d7f6-y0Vo)
2019/05/11(土) 22:49:22.08ID:glRpLuyC0494はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-gMth)
2019/05/12(日) 10:19:15.38ID:l86zXz3/0 >>493
そう決めつけて続きを拒むなら「一方的な押し付けしか頭にない」「対話がない」というまさにそれでしかなくね?
意味がわからんから解説してくれっての。
わからんことを理解する必要があるから対話になるんだろ。
そう決めつけて続きを拒むなら「一方的な押し付けしか頭にない」「対話がない」というまさにそれでしかなくね?
意味がわからんから解説してくれっての。
わからんことを理解する必要があるから対話になるんだろ。
495デフォルトの名無しさん (ワッチョイ d7f6-y0Vo)
2019/05/12(日) 11:22:06.40ID:VeGHf8Lz0496デフォルトの名無しさん (ワッチョイ 9f52-tfUF)
2019/05/12(日) 11:57:36.56ID:7nn+3/Jt0 >>495
意見を全否定って、そりゃ異なる意見があるのは当然だろう。異なる考えなら議論にならないなんて、議論する気が無いだけだろう。
ついでだが、俺もお前さんの意見には反対だ。自分の言葉で書くかはまったく重要ではないと思う。お手軽に書ける掲示板のレスは言葉足らずだったり不正確な表現なことも多々あるが、それよりきちんと纏まった情報をリンクされた方がありがたいことも多い。
意見を全否定って、そりゃ異なる意見があるのは当然だろう。異なる考えなら議論にならないなんて、議論する気が無いだけだろう。
ついでだが、俺もお前さんの意見には反対だ。自分の言葉で書くかはまったく重要ではないと思う。お手軽に書ける掲示板のレスは言葉足らずだったり不正確な表現なことも多々あるが、それよりきちんと纏まった情報をリンクされた方がありがたいことも多い。
497デフォルトの名無しさん (ワッチョイ d7f6-y0Vo)
2019/05/12(日) 12:19:14.09ID:VeGHf8Lz0 >>496
意見が異なるのと全否定は違うぞ
自分はこう思うと述べるのと
おまえは間違っているというのの違いだ
よくいるんだよ、どっかからの受け売りを壊れたレコードみたいに繰り返すだけなやつとか
俺は自分の知見からは何も出てこないのかよと思うことがあるが
おまえはそれで満足なら勝手に満足してろよ
そこが俺とおまえの違いだな
意見が異なるのと全否定は違うぞ
自分はこう思うと述べるのと
おまえは間違っているというのの違いだ
よくいるんだよ、どっかからの受け売りを壊れたレコードみたいに繰り返すだけなやつとか
俺は自分の知見からは何も出てこないのかよと思うことがあるが
おまえはそれで満足なら勝手に満足してろよ
そこが俺とおまえの違いだな
498デフォルトの名無しさん (ワッチョイ 9f79-ScLU)
2019/05/12(日) 15:34:15.26ID:SbCKIsfP0 質問です
テキストファイルから文字を1文字ずつ読み込んでchar型の2次元配列matrixに入れていきたい。
この時改行は配列に入れたくないときどうすれば良いですか?
うまくいかないコード
for (i=0;i<10;i++) {
for (j=0;j<10;j++) {
if (fgetc(fp) == ‘\n’) {
continue;
}
matrix[i][j] = fgetc(fp);
}
}
テキストファイルは行数と列数があらかじめ分かってるとして
例えば
AAAAAAAAAA
BBBBBBBBBB
…
のようなファイルです
テキストファイルから文字を1文字ずつ読み込んでchar型の2次元配列matrixに入れていきたい。
この時改行は配列に入れたくないときどうすれば良いですか?
うまくいかないコード
for (i=0;i<10;i++) {
for (j=0;j<10;j++) {
if (fgetc(fp) == ‘\n’) {
continue;
}
matrix[i][j] = fgetc(fp);
}
}
テキストファイルは行数と列数があらかじめ分かってるとして
例えば
AAAAAAAAAA
BBBBBBBBBB
…
のようなファイルです
499デフォルトの名無しさん (アウアウカー Saeb-NBbm)
2019/05/12(日) 15:51:11.62ID:L7lYUohVa fgetc二回呼びたいの?
500デフォルトの名無しさん (ワッチョイ d77f-hzJM)
2019/05/12(日) 16:10:46.32ID:7kDDqNbD0 >>498
continueだと内ループ先頭に戻るから違うんじゃないの
continueだと内ループ先頭に戻るから違うんじゃないの
501デフォルトの名無しさん (ワッチョイ ff12-f8ez)
2019/05/12(日) 16:24:47.11ID:R31sKZyy0 >>498
.for ... {
. for ... {
. char c = fgetc(fp);
. if (c != '\r' && c != '\n') {
. matrix[i][j] = c;
. }
. }
.}
.for ... {
. for ... {
. char c = fgetc(fp);
. if (c != '\r' && c != '\n') {
. matrix[i][j] = c;
. }
. }
.}
502デフォルトの名無しさん (ワッチョイ 9f79-ScLU)
2019/05/12(日) 17:12:05.74ID:SbCKIsfP0503経団連 ◆T6xkBnTXz7B0 (ワッチョイ 1701-PJeF)
2019/05/12(日) 17:22:08.08ID:uLUIsoqa0 for (i=0;i<10;i++) {
for (j=0;j<10;j++) {
matrix[i][j] = fgetc(fp);
}
fgetc(fp); //読み捨て
}
for (j=0;j<10;j++) {
matrix[i][j] = fgetc(fp);
}
fgetc(fp); //読み捨て
}
504デフォルトの名無しさん (ワッチョイ b77c-NBbm)
2019/05/12(日) 17:29:14.22ID:CrklWm7I0 変な例出すなよ…
505デフォルトの名無しさん (ワッチョイ 9f1e-bWAY)
2019/05/12(日) 17:29:29.19ID:gzai7Rgq0 サイズが固定なら fread でよくない?
そうすべきというほどのものでもないだろうが。
そうすべきというほどのものでもないだろうが。
506デフォルトの名無しさん (ワッチョイ 577b-djxj)
2019/05/12(日) 17:35:10.27ID:x4ccFx6b0 >>498
「うまくいかない」症状を見れば、もう少し見当がつくんだけど…。
格納先の配列を char matrix[LINES][CHRS]; とか定義して、
printf("%s\n", matrix[n]); で表示してるの違うかな。
各行の文字列の末尾にあるべき '\0' が格納されてない、みたいな。
「うまくいかない」症状を見れば、もう少し見当がつくんだけど…。
格納先の配列を char matrix[LINES][CHRS]; とか定義して、
printf("%s\n", matrix[n]); で表示してるの違うかな。
各行の文字列の末尾にあるべき '\0' が格納されてない、みたいな。
507デフォルトの名無しさん (ワッチョイ ff63-gMth)
2019/05/12(日) 17:36:33.22ID:JjryTeWM0 2重ループやめても良いか?
while (1) {
int c = fgetc(fp);
if (c == EOF) {
break;
}
if (c == '\n') {
continue;
}
matrix[i][j] = c;
j++;
if (j == 10) {
i++; j = 0;
}
}
while (1) {
int c = fgetc(fp);
if (c == EOF) {
break;
}
if (c == '\n') {
continue;
}
matrix[i][j] = c;
j++;
if (j == 10) {
i++; j = 0;
}
}
508デフォルトの名無しさん (ワッチョイ ff63-gMth)
2019/05/12(日) 17:38:28.80ID:JjryTeWM0 501の方法だと'\n'読んだ時に、スキップしているけど
ループ変数の方は ++1 してるからズレてくる
ループ変数の方は ++1 してるからズレてくる
509デフォルトの名無しさん (ワッチョイ 9f79-ScLU)
2019/05/12(日) 18:35:08.99ID:SbCKIsfP0510デフォルトの名無しさん (ワッチョイ ff63-gMth)
2019/05/12(日) 18:43:30.54ID:JjryTeWM0 >>509
10個読んで1個捨てる
10個読んで1個捨てる
511デフォルトの名無しさん (ワッチョイ 3702-vVMj)
2019/05/13(月) 20:38:42.19ID:WOFscy660 バッファにつめるところを簡単にしてみた。
https://ideone.com/fJ91BI
https://ideone.com/fJ91BI
512デフォルトの名無しさん (オッペケ Sr8b-lJiK)
2019/05/14(火) 06:41:01.67ID:7SLYc+Rqr OSSで構造体を公開しようとおもってる
そのサイズをバージョンアップしても固定にしたいんだけどいいアイデアないかな?
struct foo {
int a;
double b; // ここをバージョンアップで追加
}
char[100] buffer;
上記を予め含めておいて、追加サイズ分だけ減らすってのがよくある手段だと思うけど、intや他の型が固定サイズの保証はないから、処理系をかんがえると使えない
パディングでサイズも変わっちゃうしね
C++ならテンプレートでいけるけど、OSSだから利用者が多いC言語で書いておく必要がある
構造体を公開しないで、ハンドラとセッタで扱えばいけるだろうけど、今回は構造体でいきたい
そのサイズをバージョンアップしても固定にしたいんだけどいいアイデアないかな?
struct foo {
int a;
double b; // ここをバージョンアップで追加
}
char[100] buffer;
上記を予め含めておいて、追加サイズ分だけ減らすってのがよくある手段だと思うけど、intや他の型が固定サイズの保証はないから、処理系をかんがえると使えない
パディングでサイズも変わっちゃうしね
C++ならテンプレートでいけるけど、OSSだから利用者が多いC言語で書いておく必要がある
構造体を公開しないで、ハンドラとセッタで扱えばいけるだろうけど、今回は構造体でいきたい
513デフォルトの名無しさん (ワッチョイ 9ff9-vVMj)
2019/05/14(火) 08:01:00.18ID:YNmKUGxB0 「sizeof(int)が環境依存」を前提にするなら
バージョンアップ以前のint a;だけでもう既にサイズ固定じゃないじゃん
int32_tですら必ずある保証はないよ
「汎用な記述で全ての環境に対応したい」ってのが、土台無理な注文なのよ
低レベルなことやるなら、サポートする環境を列挙限定しなければならない
素直に「よくある手段」でやりなさいってことだ
バージョンアップ以前のint a;だけでもう既にサイズ固定じゃないじゃん
int32_tですら必ずある保証はないよ
「汎用な記述で全ての環境に対応したい」ってのが、土台無理な注文なのよ
低レベルなことやるなら、サポートする環境を列挙限定しなければならない
素直に「よくある手段」でやりなさいってことだ
514デフォルトの名無しさん (アークセー Sx8b-Vhni)
2019/05/14(火) 08:07:10.74ID:0o/9QF7Tx >>512
処理系によるパディングとかの問題を別にしたら、bufferをunionにしといたらわざわざ減らさなくても良いのでは?
処理系によるパディングとかの問題を別にしたら、bufferをunionにしといたらわざわざ減らさなくても良いのでは?
515デフォルトの名無しさん (オッペケ Sr8b-lJiK)
2019/05/14(火) 08:25:38.55ID:7SLYc+Rqr >>513
たしかにint aですでに違うね
ただ今回考えてるのは、コンパイルせずに共有ライブラリを差し替えるって状況を想定してる
そのときにセグメンテーションフォールトがでないようにしたい
だから、すべての処理系で同じサイズにしたいってわけじゃなくて、同じ処理系の中ではバージョンにかかわらずサイズを保ちたいってことなんだよね
説明不足ですまん
たしかにint aですでに違うね
ただ今回考えてるのは、コンパイルせずに共有ライブラリを差し替えるって状況を想定してる
そのときにセグメンテーションフォールトがでないようにしたい
だから、すべての処理系で同じサイズにしたいってわけじゃなくて、同じ処理系の中ではバージョンにかかわらずサイズを保ちたいってことなんだよね
説明不足ですまん
516デフォルトの名無しさん (アウアウエー Sadf-NBbm)
2019/05/14(火) 08:36:30.40ID:2RiYyx1fa あらゆる環境だったらシリアライズしないとだし。
同じ処理系だったら同じ構造体でいいだろうし。
同じ処理系だったら同じ構造体でいいだろうし。
517デフォルトの名無しさん (ワッチョイ ff69-PnGR)
2019/05/14(火) 13:41:09.36ID:d9/Wmgv60 >>514 のはこんな感じですかの
union foo {
struct {
int a;
double b; // ここをバージョンアップで追加
};
char dummyBuffer[100];
};
union foo {
struct {
int a;
double b; // ここをバージョンアップで追加
};
char dummyBuffer[100];
};
518デフォルトの名無しさん (ワッチョイ ff69-PnGR)
2019/05/14(火) 13:59:44.65ID:d9/Wmgv60 構造体の大きさが char[100] に収まってる範囲での話
>>512 のように末尾に用意したギャップを引き算していくにしても、引ききれなくなった段階で破綻するよね
※ 突破したことをチェックするには sizoef(union foo) と sizeof(char[100]) とを比較すんのかなぁ…
>>512 のように末尾に用意したギャップを引き算していくにしても、引ききれなくなった段階で破綻するよね
※ 突破したことをチェックするには sizoef(union foo) と sizeof(char[100]) とを比較すんのかなぁ…
519経団連 ◆T6xkBnTXz7B0 (ワッチョイ 1701-PJeF)
2019/05/14(火) 14:09:24.00ID:4po1tQ0w0 C99 <stdint.h>のuint*_t型を使った方がいいと思う。
520デフォルトの名無しさん (アウアウエー Sadf-NBbm)
2019/05/14(火) 14:39:04.31ID:2RiYyx1fa 普通符号付きでしょ
521デフォルトの名無しさん (ワッチョイ 7f7c-gMth)
2019/05/14(火) 14:51:20.14ID:5nOlmwWa0 符号プログラミングか
522デフォルトの名無しさん (アウアウエー Sadf-NBbm)
2019/05/14(火) 15:42:40.54ID:2RiYyx1fa 今はstatic_assertとかいうものがあるらしいぞ
これでコンパイル時にチェックすればよい
これでコンパイル時にチェックすればよい
523デフォルトの名無しさん (ワッチョイ bf54-vVMj)
2019/05/14(火) 21:12:50.85ID:8soz04JH0 >>512
不格好だけどこれでいけるよ
全部プリプロセッサで処理できて、構造体サイズは100バイト固定になる。
予想を超えてサイズを突き破った場合は別構造体作るしかないね。
#include <stddef.h>
struct inner_foo {
int a;
char buf[];
};
#define MAX_STRUCT_SIZE 100
#define BUF_SIZE (MAX_STRUCT_SIZE - offsetof(struct inner_foo, buf))
struct foo {
int a;
double b;
char buf[BUF_SIZE];
};
不格好だけどこれでいけるよ
全部プリプロセッサで処理できて、構造体サイズは100バイト固定になる。
予想を超えてサイズを突き破った場合は別構造体作るしかないね。
#include <stddef.h>
struct inner_foo {
int a;
char buf[];
};
#define MAX_STRUCT_SIZE 100
#define BUF_SIZE (MAX_STRUCT_SIZE - offsetof(struct inner_foo, buf))
struct foo {
int a;
double b;
char buf[BUF_SIZE];
};
524デフォルトの名無しさん (ワッチョイ 577b-djxj)
2019/05/15(水) 07:47:15.99ID:FPbZusNo0 >>523 ちょっと間違ってるみたい。
struct foo には struct inner_foo に double b; が追加されてるせいで
sizeof(struct foo) == MAX_STRUCT_SIZE にならない。
sizeof(struct foo) == MAX_STRUCT_SIZE + sizeof(double) になっちゃう。
inner_foo と foo とで char buf[] より前のメンバを一致させる必要がある。
struct foo には struct inner_foo に double b; が追加されてるせいで
sizeof(struct foo) == MAX_STRUCT_SIZE にならない。
sizeof(struct foo) == MAX_STRUCT_SIZE + sizeof(double) になっちゃう。
inner_foo と foo とで char buf[] より前のメンバを一致させる必要がある。
525デフォルトの名無しさん (ドコグロ MMdf-vyow)
2019/05/15(水) 08:35:12.84ID:0TljqresM526デフォルトの名無しさん (ワッチョイ 57f2-y0Vo)
2019/05/15(水) 08:56:22.39ID:nK0I7Knm0 データファイルの話なら分かるが、intのサイズが違う環境の共有ライブラリってそもそも使えるのか?
527デフォルトの名無しさん (アウアウウー Sa1b-NBbm)
2019/05/15(水) 09:12:43.64ID:e9I3VVqQa コンパイルは自分でしろって話だと思うよ。
そうすると単にメモリ配置を意識したプログラムだな。
当然、バイトオーダーも気にしろよっていう話に
そうすると単にメモリ配置を意識したプログラムだな。
当然、バイトオーダーも気にしろよっていう話に
528デフォルトの名無しさん (アウアウウー Sa1b-wdoq)
2019/05/15(水) 09:32:21.44ID:k0yjAgrYa やっぱ int32_t みたいな環境に関係なく同じビット数になるやつにしといた方が良いんじゃないかな。
529デフォルトの名無しさん (ワッチョイ ff69-PnGR)
2019/05/15(水) 09:45:02.94ID:25auY+1H0 515の
>ただ今回考えてるのは、コンパイルせずに共有ライブラリを差し替えるって状況を想定してる
>そのときにセグメンテーションフォールトがでないようにしたい
構造体のパラメータを追加し共有ライブラリを差し替えつつ
呼び出し側のコンパイルは行わないって無理ないか?
旧ソースで追加されたパラメータ部分は不定値であって
その不定値をうけて共有ライブラリ内部が正しく動作できるとは思えないが…
>ただ今回考えてるのは、コンパイルせずに共有ライブラリを差し替えるって状況を想定してる
>そのときにセグメンテーションフォールトがでないようにしたい
構造体のパラメータを追加し共有ライブラリを差し替えつつ
呼び出し側のコンパイルは行わないって無理ないか?
旧ソースで追加されたパラメータ部分は不定値であって
その不定値をうけて共有ライブラリ内部が正しく動作できるとは思えないが…
530デフォルトの名無しさん (ワッチョイ 9f2c-NS0m)
2019/05/15(水) 11:40:27.07ID:AfKgri370 構造体には、サイズの変わらない、ポインタだけを置いておいて、
実際の領域は、ライブラリ内で確保して使って、解放すれば?
実際の領域は、ライブラリ内で確保して使って、解放すれば?
531デフォルトの名無しさん (アウアウウー Sa1b-NBbm)
2019/05/15(水) 12:19:01.09ID:e9I3VVqQa さすがに実体を共有するという目的がないとこういう発想にはならんでしょ。
共有メモリとか、ファイルとか、通信とか。
共有メモリとか、ファイルとか、通信とか。
532デフォルトの名無しさん (オッペケ Sr8b-lJiK)
2019/05/15(水) 12:31:29.02ID:dMKqDPXvr >>529
呼び出す側がバージョン情報をもっておいて、処理側で振り分けてアクセスしないようにすれば問題ないね
#define version 2
void func (const struct* foo) {
func_impl(foo, version);
}
void func_impl(const struct* foo, int version) {
if (version > 1) {
foo.b;
}
}
呼び出す側がバージョン情報をもっておいて、処理側で振り分けてアクセスしないようにすれば問題ないね
#define version 2
void func (const struct* foo) {
func_impl(foo, version);
}
void func_impl(const struct* foo, int version) {
if (version > 1) {
foo.b;
}
}
533デフォルトの名無しさん (ワッチョイ ff69-PnGR)
2019/05/15(水) 12:43:05.74ID:25auY+1H0534デフォルトの名無しさん (アウアウウー Sa1b-wdoq)
2019/05/15(水) 12:53:24.07ID:k0yjAgrYa 構造体の中身を公開しないでポインタだけ使わせて読み書きする関数を別途用意するって方法もあると思う。オブジェクト指向の言語でのプロパティのようなものね。
内容のファイルへの読み書きやネットワークでのやり取りはそれようにデータをpack、unpackする処理を作ってそこにバージョン番号も埋め込む。
内容のファイルへの読み書きやネットワークでのやり取りはそれようにデータをpack、unpackする処理を作ってそこにバージョン番号も埋め込む。
535デフォルトの名無しさん (ワッチョイ 9ff9-vVMj)
2019/05/15(水) 12:59:51.65ID:Wbf0zcGJ0 exeがnew(malloc)するけど中をいじるのは全てdllの関数ってのはままある
dllだけ差し替えで済ましたい、サイズが変わらなければexeはビルドし直さなくていいのに…
ってことだろう
>512の
>intや他の型が固定サイズの保証はないから、処理系をかんがえると使えない
>パディングでサイズも変わっちゃうしね
は全く関係ない話だったということだ
素直に「よくある手段」でやればいい
>514,517のunionもいいと思うけど
foo.aでアクセスできないよね?foo.body.aとかしないと
dllだけ差し替えで済ましたい、サイズが変わらなければexeはビルドし直さなくていいのに…
ってことだろう
>512の
>intや他の型が固定サイズの保証はないから、処理系をかんがえると使えない
>パディングでサイズも変わっちゃうしね
は全く関係ない話だったということだ
素直に「よくある手段」でやればいい
>514,517のunionもいいと思うけど
foo.aでアクセスできないよね?foo.body.aとかしないと
536デフォルトの名無しさん (ワッチョイ ff69-PnGR)
2019/05/15(水) 13:12:20.84ID:25auY+1H0 >>517 の foo.a でいきなりアクセスできる union が記述できるのは C11 からみたい
無名構造体/無名共用体
無名構造体/無名共用体
537デフォルトの名無しさん (オッペケ Sr8b-lJiK)
2019/05/15(水) 14:41:00.06ID:dMKqDPXvr >>535
intが4バイトなんて保証はないから、char[] bufの大きさを決められないって話でしょ?
intメンバを追加したとして、bufのサイズはどれだけ減らせばいいのかわからないのが問題
4の環境が多いだろけど、2の環境だと2を減らさなきゃいけないわけで
dll差し替えで再ビルドしない場合、構造体サイズが変わると特に配列渡しの場合はセグメンテーションフォールトになる可能性が高くて危険
セーブデータみたいに構造体をそのままファイルに落とすとしても、サイズはずっと不変なのが扱いやすいね
intが4バイトなんて保証はないから、char[] bufの大きさを決められないって話でしょ?
intメンバを追加したとして、bufのサイズはどれだけ減らせばいいのかわからないのが問題
4の環境が多いだろけど、2の環境だと2を減らさなきゃいけないわけで
dll差し替えで再ビルドしない場合、構造体サイズが変わると特に配列渡しの場合はセグメンテーションフォールトになる可能性が高くて危険
セーブデータみたいに構造体をそのままファイルに落とすとしても、サイズはずっと不変なのが扱いやすいね
538デフォルトの名無しさん (アウアウウー Sa1b-NBbm)
2019/05/15(水) 14:56:07.34ID:e9I3VVqQa 数字付かないintのでかい方に合わせるなら、それこそunion使って明示的にオフセット決めるとか。
本当にそんなことしたいのか?という話は置いといて。
もちろんint32_tとかint_least32_t使う方がいいし、本当に位置合わせするならバイト位置指定して読み書きするし、そもそもサイズ固定せずにシリアライズ用のライブラリ使うのが正しいよ。
本当にそんなことしたいのか?という話は置いといて。
もちろんint32_tとかint_least32_t使う方がいいし、本当に位置合わせするならバイト位置指定して読み書きするし、そもそもサイズ固定せずにシリアライズ用のライブラリ使うのが正しいよ。
539デフォルトの名無しさん (ドコグロ MMdf-vyow)
2019/05/15(水) 19:35:47.81ID:0TljqresM540デフォルトの名無しさん (ワッチョイ 9ff9-vVMj)
2019/05/15(水) 20:46:54.27ID:Wbf0zcGJ0541デフォルトの名無しさん (ワッチョイ d7ab-xJZP)
2019/05/15(水) 21:55:29.06ID:ZaVTFrP70 win32apiはバージョンによって構造体の変数が追加になるから構造体のサイズを構造体の先頭にセットする
542デフォルトの名無しさん (ワッチョイ baa5-bDB9)
2019/05/16(木) 08:13:26.18ID:eEplP63Q0 windows.hのsmallで一時間潰した
543デフォルトの名無しさん (ワッチョイ 29ad-BnNU)
2019/05/16(木) 19:38:59.34ID:GXqxfUU20 文字配列列sを逆順に文字配列tに格納して出力したいのですが、
以下のコードでは実行してもt=[]と出力されてしまいます
#include <stdio.h>
#define MAXLINE 1000
main()
{
char s[MAXLINE],t[MAXLINE];
int c,i,I;
for(i=0; i<MAXLINE-1 && (c=getchar())!=EOF && c!='¥n'; ++i)
{
s[i]=c;
}
if(c=='¥n'){
s[i]=c;
++i;
}
s[i]='\0';
I=i;
for(i=i; 0<=i; i=i-1)
{
t[I-i]=s[i];
}
printf("t=[%s]",t);
}
どこがおかしいのでしょうか…
以下のコードでは実行してもt=[]と出力されてしまいます
#include <stdio.h>
#define MAXLINE 1000
main()
{
char s[MAXLINE],t[MAXLINE];
int c,i,I;
for(i=0; i<MAXLINE-1 && (c=getchar())!=EOF && c!='¥n'; ++i)
{
s[i]=c;
}
if(c=='¥n'){
s[i]=c;
++i;
}
s[i]='\0';
I=i;
for(i=i; 0<=i; i=i-1)
{
t[I-i]=s[i];
}
printf("t=[%s]",t);
}
どこがおかしいのでしょうか…
544デフォルトの名無しさん (ワッチョイ 3f01-pg4x)
2019/05/16(木) 19:48:10.73ID:q0J7kB7g0 後のループの一発目は
s[i]='\0';
I=i;
/* ここのforを削って */
t[I-i]=s[i];
こういうことになるから
t[0] = s[i] ってことになって t[0] = '\0'; をやってることになる
上記のは
1 2 3 4 \0 → \0 4 3 2 1 のコード
実装すべきなのは
1 2 3 4 \0 → 4 3 2 1 \0 となるコード
s[i]='\0';
I=i;
/* ここのforを削って */
t[I-i]=s[i];
こういうことになるから
t[0] = s[i] ってことになって t[0] = '\0'; をやってることになる
上記のは
1 2 3 4 \0 → \0 4 3 2 1 のコード
実装すべきなのは
1 2 3 4 \0 → 4 3 2 1 \0 となるコード
545デフォルトの名無しさん (アウアウウー Sa83-RNyv)
2019/05/16(木) 20:27:22.18ID:m1+/MMjMa 惜しいねえ。綺麗に逆に入ってはいるんだよな。
546デフォルトの名無しさん (ワッチョイ 29ad-BnNU)
2019/05/16(木) 20:38:11.53ID:GXqxfUU20 おっしゃる通りでした…今度は上手くいきました
ありがとうございます
ありがとうございます
547デフォルトの名無しさん (ワッチョイ 29ad-BnNU)
2019/05/16(木) 20:38:46.73ID:GXqxfUU20 おっしゃる通りでした…今度は上手くいきました
ありがとうございます
ありがとうございます
548デフォルトの名無しさん (ワッチョイ 3f01-pg4x)
2019/05/16(木) 21:09:34.65ID:q0J7kB7g0 自己解決できたようでなにより
整数の配列を逆に整列させるなら正解だったんだけどねー
「文字列」操作の落とし穴ですな
整数の配列を逆に整列させるなら正解だったんだけどねー
「文字列」操作の落とし穴ですな
549デフォルトの名無しさん (ワッチョイ 2c5f-N32O)
2019/05/18(土) 22:03:40.11ID:e0Mh58zT0 今C言語教室でSQLとGUIやってる初心者なんだがCでDB弄る仕事ってあるのか
JavaとかC#に取られそうだけど
JavaとかC#に取られそうだけど
550デフォルトの名無しさん (アウアウエー Sa6a-ZkGz)
2019/05/18(土) 22:06:44.17ID:8rj7/ih6a sqliteは使うよ
552デフォルトの名無しさん (ワッチョイ 2c5f-N32O)
2019/05/18(土) 22:19:48.67ID:e0Mh58zT0 SQL使うのか慣れてないからあんまやりたくないんだよなあ
頑張るか
頑張るか
553デフォルトの名無しさん (ワッチョイ aa01-A+mh)
2019/05/18(土) 22:37:47.44ID:D3aJPSyb0554デフォルトの名無しさん (ワッチョイ d863-N32O)
2019/05/18(土) 22:53:12.41ID:RWbfx4gX0 むかーし、Pro*C って使った事がある
Cのソース内にSQLを埋め込み
プリコンパイルする感じ
今は流行らないかもしれない
Cのソース内にSQLを埋め込み
プリコンパイルする感じ
今は流行らないかもしれない
555デフォルトの名無しさん (アウアウエー Sa6a-ZkGz)
2019/05/18(土) 22:58:45.45ID:8rj7/ih6a SQL使いこなしてる人ってすごいけど、正直ああはなりたくないという感じだよな。
556デフォルトの名無しさん (ワッチョイ d863-N32O)
2019/05/18(土) 23:01:53.11ID:RWbfx4gX0 賢いファイルシステムとして利用すると超便利だぞ
557デフォルトの名無しさん (ワッチョイ d863-N32O)
2019/05/18(土) 23:02:38.45ID:RWbfx4gX0 同じ事をCのロジックで組むとなると、アタマおかしくなるかも
558デフォルトの名無しさん (ワッチョイ 73c3-AU7T)
2019/05/18(土) 23:08:58.89ID:Y/SMFmS40 普通にアプリケーションの規模が大きくなるとsql使いたくなるだろ
そういう場合はsqlite使う
そういう場合はsqlite使う
559デフォルトの名無しさん (ワッチョイ d863-N32O)
2019/05/18(土) 23:10:30.33ID:RWbfx4gX0 5ちゃんねる専用ブラウザもsqlite使っているそうですね?
プログラムコードはCではないですが
プログラムコードはCではないですが
560デフォルトの名無しさん (ワッチョイ 8654-2aw6)
2019/05/19(日) 10:01:29.20ID:EV8D9m9A0 IoTのデバイス開発やってるけど、C言語でDBのクライアントライブラリ使ってるよ
561デフォルトの名無しさん (ワッチョイ 9ff6-EL+e)
2019/05/19(日) 16:30:57.06ID:b6d7Y/CF0 リーナスさんはC++嫌いつーてるしな
トレードマークのfuck口調で
トレードマークのfuck口調で
562デフォルトの名無しさん (アウアウウー Sa83-RNyv)
2019/05/19(日) 17:49:51.40ID:V/GPYpFPa この頃は間に何かライブラリ挟んでDB変わってもSQL文がほぼ同じままで行けるようなのが流行りなのでは?
563デフォルトの名無しさん (ワッチョイ 4edc-EL+e)
2019/05/19(日) 19:08:51.80ID:SqCxdnVY0 大学の情報科の人たちってどのレベルでC言語使えるんですかね?
Cに限ったことではないですが大学4年でどの程度の練度が身につくのか
Cに限ったことではないですが大学4年でどの程度の練度が身につくのか
564デフォルトの名無しさん (ワッチョイ 4652-EL+e)
2019/05/19(日) 19:17:39.10ID:Ic55MIMX0 人によるだろ
そもそも好きなやつは大学入る前からやってるからな
そもそも好きなやつは大学入る前からやってるからな
565デフォルトの名無しさん (アウアウエー Sa6a-ZkGz)
2019/05/19(日) 19:22:28.74ID:qBoKnLB7a >>563
別に使えなくてもいいよ
別に使えなくてもいいよ
566デフォルトの名無しさん (ワッチョイ 9ff6-EL+e)
2019/05/19(日) 21:05:03.54ID:b6d7Y/CF0567デフォルトの名無しさん (アウアウカー Sa0a-ZkGz)
2019/05/19(日) 21:14:52.17ID:Y3pJ4vrOa >>566
お前が入ったの専門学校だろ?
お前が入ったの専門学校だろ?
568デフォルトの名無しさん (ワッチョイ 9ff6-EL+e)
2019/05/19(日) 21:19:32.43ID:b6d7Y/CF0 >>567
化学科だけど
化学科だけど
569デフォルトの名無しさん (ワッチョイ d863-N32O)
2019/05/19(日) 21:24:37.32ID:RJz4Ejb00 学校だとアルゴリズムやシステム設計手法は学べるだろうが
練度が上がるのはやはり仕事を始めてからだと思う
練度が上がるのはやはり仕事を始めてからだと思う
570デフォルトの名無しさん (オッペケ Sr88-2aw6)
2019/05/20(月) 12:44:26.31ID:PSRVLRmYr コンピュータサイカヨウの基本は一通りやるんじゃない?
情報処理試験の基本レベルくらいのもの
初心者は実務にはそのままは使えないけど、中級以上のエンジニアならこのあたりの知識があると差がついてくるね
情報処理試験の基本レベルくらいのもの
初心者は実務にはそのままは使えないけど、中級以上のエンジニアならこのあたりの知識があると差がついてくるね
571デフォルトの名無しさん (ワッチョイ 328c-TfzP)
2019/05/20(月) 14:12:04.87ID:0d3wAWyu0 業務のほとんどは手作業の自動化だから差は出ない。そしてみんなリストラされる。
572デフォルトの名無しさん (ワッチョイ 462d-EL+e)
2019/05/20(月) 18:18:34.53ID:IJBxlZ980 仕事で出会った、いろいろな人を思い出すに、ガチに使える人材って凄いからなあ。
学校や仕事を通じて学ぶ、みたいな次元じゃないんだよねえ。
学校や仕事を通じて学ぶ、みたいな次元じゃないんだよねえ。
573デフォルトの名無しさん (アウアウエー Sa6a-ZkGz)
2019/05/20(月) 19:49:19.18ID:Nbm/sW0Oa おまえが使ってるんだったらおまえが偉いよ
574デフォルトの名無しさん (ワッチョイ ae2c-uMtI)
2019/05/21(火) 00:42:18.33ID:jVHVO/YL0 setbuf関数っていつなんの為に使うんや?
バッファリングのためにあるのはわかるけどそもそもバッファリングがなんの為にあるのかわからん
バッファリングのためにあるのはわかるけどそもそもバッファリングがなんの為にあるのかわからん
575デフォルトの名無しさん (ワッチョイ 1c79-N32O)
2019/05/21(火) 00:44:38.83ID:Hcv2vO/e0 ちまちま出力するより溜めてからまとめて出力した方が高速
576デフォルトの名無しさん (ワッチョイ ae2c-uMtI)
2019/05/21(火) 01:29:10.75ID:jVHVO/YL0 1万文字くらいのテキストファイルを標準出力でやってみたけど変わった気しなかったぞ
もしかして数百万文字レベルの巨大ファイルだと劇的に変わるんか?
もしかして数百万文字レベルの巨大ファイルだと劇的に変わるんか?
577デフォルトの名無しさん (ワッチョイ 73c3-AU7T)
2019/05/21(火) 01:34:19.46ID:XM845/F70 10kbって小さくね
578デフォルトの名無しさん (アウアウカー Sa0a-ZkGz)
2019/05/21(火) 01:46:59.05ID:+xvLcOVEa というか普通はバッファリングする関数ばっかりだが、自前でバッファ用意したいときもあるって話。
基本変わらんよたぶん。
基本変わらんよたぶん。
579デフォルトの名無しさん (ワッチョイ ae2c-uMtI)
2019/05/21(火) 01:47:43.41ID:jVHVO/YL0 確かに少ないな
と思ったんで2,700kbでやってみたらむしろ4秒長くなったぞ
と思ったんで2,700kbでやってみたらむしろ4秒長くなったぞ
580デフォルトの名無しさん (ワッチョイ 9602-XAPB)
2019/05/21(火) 02:21:13.21ID:Y+BS98b80 >>574
FILE * 経由で出力する printf() 等は内部でバッファリングしていてバッファがいっぱいになったらまとめて出力する(出力先が端末の場合は行単位で出力する)。
そのバッファを自分で指定した領域を使わせるか、またはなしにできるのが setbuf()。更に自由に大きさやモードも指定したいなら setvbuf() を使う。
バッファリングに関して考慮しなくても良い入出力をする場合は read(), write() で行う。この場合は全くバッファリングされないので少ないバイト数の入出力が多いと遅くなる。
それと printf() のようなフォーマットを考慮した出力はないので必要なら自作する。
FILE * 経由で出力する printf() 等は内部でバッファリングしていてバッファがいっぱいになったらまとめて出力する(出力先が端末の場合は行単位で出力する)。
そのバッファを自分で指定した領域を使わせるか、またはなしにできるのが setbuf()。更に自由に大きさやモードも指定したいなら setvbuf() を使う。
バッファリングに関して考慮しなくても良い入出力をする場合は read(), write() で行う。この場合は全くバッファリングされないので少ないバイト数の入出力が多いと遅くなる。
それと printf() のようなフォーマットを考慮した出力はないので必要なら自作する。
581デフォルトの名無しさん (ワッチョイ 9602-XAPB)
2019/05/21(火) 02:26:07.71ID:Y+BS98b80 >>576
open()してwrite()で1バイトづつ書くのとまとめて書くのとではバイト数によっては大幅に違いが出ると思う。環境依存ではあるが。
open()してwrite()で1バイトづつ書くのとまとめて書くのとではバイト数によっては大幅に違いが出ると思う。環境依存ではあるが。
582デフォルトの名無しさん (ワッチョイ ae2c-uMtI)
2019/05/21(火) 03:47:59.45ID:jVHVO/YL0 >>581
大きなファイルの入出力を高速化したい時はsetbuf(fp,buf)
バッファリング無しにしてバッファをフラッシュするタイミングを順番に逐一実行させたい時はsetbuf(fp,NULL)
みたいな感じでええんかな?
大きなファイルの入出力を高速化したい時はsetbuf(fp,buf)
バッファリング無しにしてバッファをフラッシュするタイミングを順番に逐一実行させたい時はsetbuf(fp,NULL)
みたいな感じでええんかな?
583デフォルトの名無しさん (ワッチョイ 9602-XAPB)
2019/05/21(火) 03:58:34.93ID:Y+BS98b80 >>582
setvbuf()で自分でバッファの大きさ決めてしまった方が良いかも。
setvbuf()で自分でバッファの大きさ決めてしまった方が良いかも。
584デフォルトの名無しさん (ワッチョイ a601-uGxO)
2019/05/21(火) 04:24:32.31ID:zmxtmgNI0 既出かもしれませんがconstがjavaのfinalと違うと知りました。どう違うのでしょうか?c初心者です
585デフォルトの名無しさん (ワッチョイ 4101-MvwS)
2019/05/21(火) 05:39:22.97ID:SRv5ILQj0 >>576
OSによってはHDDへ遅延書き込みするから、結局バッファしてるのと大して変わらなかったりする。
OSによってはHDDへ遅延書き込みするから、結局バッファしてるのと大して変わらなかったりする。
586デフォルトの名無しさん (ワッチョイ 462d-EL+e)
2019/05/21(火) 06:44:08.98ID:UPiNM42a0 >>584
20年前くらいの知識で、しかも完全に理解してるわけではないので、間違っていたらゴメンだけど。
変数について言えば、Java の final 変数は、値が未定義かどうか、という情報を内部的に持っていて。
もし、変数の値が未定義の場合は、1回だけ代入できたはず。例えば
final int i;
System.out.println("test");
i=4;
System.out.println(i);
i=5;
System.out.println(i);
の場合、1回目の代入(i=4)は許されるけど、2回目の代入(i=5)は怒られる。
それに対して、(C89の頃のだけど)Cのconst変数は・・・
const int i;
printf("test\n");
i=0;
printf("%d\n",i);
1回目の代入(i=0)であっても怒られる。
みたいな感じの違いはあったような。最近のCやJavaは知らないんだけどね。
あまり自信がないので、詳しい方のレスを待ちましょう。
20年前くらいの知識で、しかも完全に理解してるわけではないので、間違っていたらゴメンだけど。
変数について言えば、Java の final 変数は、値が未定義かどうか、という情報を内部的に持っていて。
もし、変数の値が未定義の場合は、1回だけ代入できたはず。例えば
final int i;
System.out.println("test");
i=4;
System.out.println(i);
i=5;
System.out.println(i);
の場合、1回目の代入(i=4)は許されるけど、2回目の代入(i=5)は怒られる。
それに対して、(C89の頃のだけど)Cのconst変数は・・・
const int i;
printf("test\n");
i=0;
printf("%d\n",i);
1回目の代入(i=0)であっても怒られる。
みたいな感じの違いはあったような。最近のCやJavaは知らないんだけどね。
あまり自信がないので、詳しい方のレスを待ちましょう。
587デフォルトの名無しさん (ドコグロ MM02-A+mh)
2019/05/21(火) 06:49:56.40ID:tdstqwiHM >>585
そっちもあるけどAPI呼出し回数の削減もあるから
そっちもあるけどAPI呼出し回数の削減もあるから
588デフォルトの名無しさん (オッペケ Sr88-2aw6)
2019/05/21(火) 07:08:29.24ID:6muVxYSDr >>585
今どきのディスクならほぼ遅延書き込みしてるといってもいいね
バッファには二段階あって、
@プロセスが持ってるバッファ
AOSが持ってるバッファ
flush関係のライブラリ関数やシステムコールは@をAに吐き出す
Aを吐き出すにはLinuxだとfsyncもしくはfdatasync
今どきのディスクならほぼ遅延書き込みしてるといってもいいね
バッファには二段階あって、
@プロセスが持ってるバッファ
AOSが持ってるバッファ
flush関係のライブラリ関数やシステムコールは@をAに吐き出す
Aを吐き出すにはLinuxだとfsyncもしくはfdatasync
589デフォルトの名無しさん (アウアウウー Sa83-RNyv)
2019/05/21(火) 09:19:53.31ID:BVi2WQ22a >>584
Cはポインタの指す先が const という指定ができるがJavaは配列の要素まで final にする指定ができなかったと思う。
つまり配列やクラスそのもののインスタンスへの参照は final にてきる。しかし参照される中身までは final にできず書き換え可能(クラスの場合はpublicのクラス変数とか、外部から書き換えられるようになっていれば書き換えられる)。
ま、ちょっと試してみな。
Cはポインタの指す先が const という指定ができるがJavaは配列の要素まで final にする指定ができなかったと思う。
つまり配列やクラスそのもののインスタンスへの参照は final にてきる。しかし参照される中身までは final にできず書き換え可能(クラスの場合はpublicのクラス変数とか、外部から書き換えられるようになっていれば書き換えられる)。
ま、ちょっと試してみな。
590デフォルトの名無しさん (ワッチョイ f6d2-cXFR)
2019/05/21(火) 10:05:33.15ID:DLRGb2lZ0 LTOのオプション
を使ってコンパイルすれば
インライン関数をヘッ
ダーに書かなくても
勝手にインライン化できるものはインラ
イン化してくれる
という理解で
あってますか?
を使ってコンパイルすれば
インライン関数をヘッ
ダーに書かなくても
勝手にインライン化できるものはインラ
イン化してくれる
という理解で
あってますか?
591デフォルトの名無しさん (アウアウウー Sa83-RNyv)
2019/05/21(火) 10:21:18.62ID:BVi2WQ22a >>590
それコンパイラ依存なのでは?
それコンパイラ依存なのでは?
592デフォルトの名無しさん (ササクッテロル Sp88-uMtI)
2019/05/21(火) 12:55:43.68ID:PZq+OQZ5p593デフォルトの名無しさん (ワッチョイ ae2c-rckI)
2019/05/21(火) 15:23:18.72ID:ZAINLMmO0 Linux では、HDD へ書き込むのは、デフォルトで、5秒に1回
USB メモリで、書き込み回数を減らしたい場合は、
15秒に1回とかに設定する人もいる
USB メモリで、書き込み回数を減らしたい場合は、
15秒に1回とかに設定する人もいる
594デフォルトの名無しさん (オッペケ Sr88-2aw6)
2019/05/21(火) 18:23:31.31ID:6muVxYSDr595デフォルトの名無しさん (ササクッテロル Sp88-Qul6)
2019/05/21(火) 18:37:21.97ID:G/IUf+gXp C言語のfprintfを用いるときに、前行の改行を消す方法をご存知ないですか?
エスケープシーケンスでバックスペースを試したのですか上手くいかなくて困っています。
状況としてはfor文を用いて改行を含んだ文字列を繰り返し出力させているんですが、最後の行だけ改行を無くし、続けて別の文を出力したいのです。
繰り返しの回数を変えて最後に改行なしの処理をいれればいいと思うのですが、簡単な方法があればと思い質問させていただきました。
よろしくお願いします。
エスケープシーケンスでバックスペースを試したのですか上手くいかなくて困っています。
状況としてはfor文を用いて改行を含んだ文字列を繰り返し出力させているんですが、最後の行だけ改行を無くし、続けて別の文を出力したいのです。
繰り返しの回数を変えて最後に改行なしの処理をいれればいいと思うのですが、簡単な方法があればと思い質問させていただきました。
よろしくお願いします。
596デフォルトの名無しさん (ワッチョイ 3f01-pg4x)
2019/05/21(火) 18:40:11.67ID:UdJL+OJH0 ストリームの撒き戻しは難しいんじゃないか? 表示装置なのかファイルなのかでも変わるだろうし…
597デフォルトの名無しさん (ワッチョイ 1c79-N32O)
2019/05/21(火) 18:54:48.20ID:Hcv2vO/e0 ファイルポインタは巻き戻せる
標準出力ならエスケープシーケンスで右上に行けばいい
標準出力ならエスケープシーケンスで右上に行けばいい
598デフォルトの名無しさん (ワッチョイ ee02-8NB0)
2019/05/21(火) 19:19:14.41ID:IJ+i04U80 こんな感じでいいのか?
#include <stdio.h>
int main(void) {
FILE* fp;
fp = fopen("Test.txt","w");
fprintf(fp,"hoge\n");
fseek(fp,-1,SEEK_CUR); /* 改行2byteなら-2 */
fprintf(fp,"fuga\n");
fclose(fp);
return 0;
}
#include <stdio.h>
int main(void) {
FILE* fp;
fp = fopen("Test.txt","w");
fprintf(fp,"hoge\n");
fseek(fp,-1,SEEK_CUR); /* 改行2byteなら-2 */
fprintf(fp,"fuga\n");
fclose(fp);
return 0;
}
599デフォルトの名無しさん (ワッチョイ 462d-EL+e)
2019/05/21(火) 19:53:55.55ID:UPiNM42a0 質問者が知りたい情報とは違うので、スルー推奨かもですが。
もし自分が、同じことをやれ、と言われたら。
「改行を含んだ文字列」を、「改行」と「それ以外の文字列」の2つに分けて、別々に出力しようとするかなあ。
ループの回数を変える必要はなくて。イメージとしては
for() ※行単位のループ
{
if(最初の行でなければ) fprintf で「改行」を出力
fprintf で「それ以外の文字列」を出力
}
fprintf で「別の文を出力」
もし自分が、同じことをやれ、と言われたら。
「改行を含んだ文字列」を、「改行」と「それ以外の文字列」の2つに分けて、別々に出力しようとするかなあ。
ループの回数を変える必要はなくて。イメージとしては
for() ※行単位のループ
{
if(最初の行でなければ) fprintf で「改行」を出力
fprintf で「それ以外の文字列」を出力
}
fprintf で「別の文を出力」
600デフォルトの名無しさん (ドコグロ MM02-A+mh)
2019/05/21(火) 19:58:03.98ID:kdkwqODuM >>595
bool First = true;
for( … ){
if(First){
First = false;
} else {
fprintf("¥n");
}
fprintf( … );
}
bool First = true;
for( … ){
if(First){
First = false;
} else {
fprintf("¥n");
}
fprintf( … );
}
601デフォルトの名無しさん (ドコグロ MM02-A+mh)
2019/05/21(火) 19:58:35.62ID:kdkwqODuM あっ、被ったや
602デフォルトの名無しさん (ワッチョイ ee02-8NB0)
2019/05/21(火) 20:07:13.38ID:IJ+i04U80 ファイルが標準出力等でvt100互換端末であれば。
#include <stdio.h>
#include <string.h>
int main(void) {
int i;
i=fprintf(stdout,"hogehogehogehoge\n");
if (0) fprintf(stdout,"\E[01Afuga%*c\n",i,' '); /* これか? */
else fprintf(stdout,"\E[01A\E[%02dCfuga\n",i-strlen("\n")); /* あるいはこれか? */
return 0;
}
cmdとかdos窓なら無理?
#include <stdio.h>
#include <string.h>
int main(void) {
int i;
i=fprintf(stdout,"hogehogehogehoge\n");
if (0) fprintf(stdout,"\E[01Afuga%*c\n",i,' '); /* これか? */
else fprintf(stdout,"\E[01A\E[%02dCfuga\n",i-strlen("\n")); /* あるいはこれか? */
return 0;
}
cmdとかdos窓なら無理?
603デフォルトの名無しさん (ササクッテロル Sp88-Qul6)
2019/05/21(火) 20:22:57.69ID:G/IUf+gXp604デフォルトの名無しさん (スププ Sd94-AU7T)
2019/05/21(火) 20:31:17.43ID:JOJ6V6qzd プログラムいじられるなら、改行出す方をどうにかした方が良さそうだが
605デフォルトの名無しさん (ワッチョイ aaf9-8NB0)
2019/05/21(火) 20:31:52.25ID:8vKfOnx40 ansi.sysを組み込めばVT100互換エスケープシーケンスが
という昔話…と思ったが、ググったらvistaまであったんだな驚き
Windows 10 Threshold 2(10.0.1058)ではコマンドプロンプトでANSI/VT100互換表示が可能に
というスラドの記事も出た
という昔話…と思ったが、ググったらvistaまであったんだな驚き
Windows 10 Threshold 2(10.0.1058)ではコマンドプロンプトでANSI/VT100互換表示が可能に
というスラドの記事も出た
606デフォルトの名無しさん (アウアウウー Sa83-RNyv)
2019/05/21(火) 20:52:46.26ID:BVi2WQ22a 最後に改行出すんじゃなくて最初に改行出すようにすれば良いだけでは?
一番最初の行だけは最初に出さなければ良いだけ。
バッファリングされて出力されないのが嫌なら行末でfflush()する。
一番最初の行だけは最初に出さなければ良いだけ。
バッファリングされて出力されないのが嫌なら行末でfflush()する。
607デフォルトの名無しさん (ワッチョイ aa01-A+mh)
2019/05/21(火) 21:47:10.75ID:n1jvW3Ih0608デフォルトの名無しさん (ワッチョイ 9602-XAPB)
2019/05/21(火) 22:06:40.11ID:Y+BS98b80609デフォルトの名無しさん (ワッチョイ 1e01-Qul6)
2019/05/21(火) 22:09:47.12ID:JtLDtEYt0610デフォルトの名無しさん (ワッチョイ dfb9-9b2Z)
2019/05/24(金) 09:00:19.45ID:h3dkW7YJ0 C言語はクラスが無い。
それは実際どれくらい問題になりますか?
昔C使ってたけど、本格的な抽象的設計をやってたわけじゃなくて、
最近Java使っててそういうのをやりだしたけど、
今思い返してみるとC言語はクラスや継承や多態性が無いから
かなり厳しい言語なんじゃないかな、と思ったんです。
メジャーなカーネルがCで作られてるという事実に驚愕します。
クラス無しで大規模開発は不可能としか思えません。
それどころか、1アルゴリズムの実装でもクラスは有用だと思うんですが。
最近、NimとかRustのようなCを代替するかもしれない勢いのある言語があります。
そういう言語はかなり抽象的な設計が可能です。
そういうのと比べると、小さなデバイスドライバみたいなものはCでいいだろうけど、
大規模開発におけるCはかなり無理があるんじゃないかな?と
そうでもないものですか?
それは実際どれくらい問題になりますか?
昔C使ってたけど、本格的な抽象的設計をやってたわけじゃなくて、
最近Java使っててそういうのをやりだしたけど、
今思い返してみるとC言語はクラスや継承や多態性が無いから
かなり厳しい言語なんじゃないかな、と思ったんです。
メジャーなカーネルがCで作られてるという事実に驚愕します。
クラス無しで大規模開発は不可能としか思えません。
それどころか、1アルゴリズムの実装でもクラスは有用だと思うんですが。
最近、NimとかRustのようなCを代替するかもしれない勢いのある言語があります。
そういう言語はかなり抽象的な設計が可能です。
そういうのと比べると、小さなデバイスドライバみたいなものはCでいいだろうけど、
大規模開発におけるCはかなり無理があるんじゃないかな?と
そうでもないものですか?
611デフォルトの名無しさん (アウアウエー Sa9f-eVvB)
2019/05/24(金) 09:04:22.51ID:a6wIXg41a まあファイルがクラスと同じだし。
継承はしづらいけど、そんなもん使ったらC++でもむしろ見通し悪くなるでしょ?
継承はしづらいけど、そんなもん使ったらC++でもむしろ見通し悪くなるでしょ?
612デフォルトの名無しさん (ワッチョイ dfa5-vAXu)
2019/05/24(金) 10:11:20.70ID:M2ZwKTAn0 最大のデバイスドライバがOSのカーネルなんじゃねえの
そしてそれがC言語の限界
そしてそれがC言語の限界
613デフォルトの名無しさん (ワッチョイ dfb9-9b2Z)
2019/05/24(金) 10:43:06.36ID:h3dkW7YJ0 Linuxカーネルは2100万行を超えているそうなので
たぶん地球上でもっとも大規模な開発の1つです。
たぶん地球上でもっとも大規模な開発の1つです。
614デフォルトの名無しさん (ワッチョイ bf8c-GX6Y)
2019/05/24(金) 11:21:47.36ID:0dR+L/D60 責任ある人は気がくるっているじゃない。
615デフォルトの名無しさん (アウアウウー Saab-EYzY)
2019/05/24(金) 12:25:59.56ID:Cw+6mW4za Cでもオブジェクト指向的に考えて作ることは可能。構造体へのポインタまたは情報を区別する番号などを渡してその中身に基づいて処理する関数作ればいいので。
ファイルアクセスとかは作りがそうなってるよね。
ファイルアクセスとかは作りがそうなってるよね。
616デフォルトの名無しさん (ワッチョイ c7d2-Fpyl)
2019/05/24(金) 12:32:21.84ID:M3xcEept0 クラスはコンストラクタ/デストラクタは活用したけど
継承で面倒になって、ちょっと便利な関数付き構造体としてしか設計したことない。
継承で面倒になって、ちょっと便利な関数付き構造体としてしか設計したことない。
617デフォルトの名無しさん (ブーイモ MMcb-/OyN)
2019/05/24(金) 12:35:03.01ID:C+5joBz9M C言語ではオブジェクト指向も関数型プログラミングもできる。その下位レイヤーだから。
面倒臭いけど。
面倒臭いけど。
618デフォルトの名無しさん (ドコグロ MM9f-LXA5)
2019/05/24(金) 12:50:51.48ID:8pSuDyEhM >>613
デバドラとかが山ほどあるだけでコア部分はそんなにたいしたことないよ
デバドラとかが山ほどあるだけでコア部分はそんなにたいしたことないよ
619デフォルトの名無しさん (ドコグロ MM9f-LXA5)
2019/05/24(金) 12:53:08.72ID:8pSuDyEhM620デフォルトの名無しさん (アウアウウー Saab-EYzY)
2019/05/24(金) 12:59:14.48ID:Cw+6mW4za まあしかしC++は複雑怪奇な状態になったような感じがするのでなんか別の言語でオブジェクト指向やった方が良いような気がする。
621デフォルトの名無しさん (ワッチョイ c7da-YLUn)
2019/05/24(金) 13:49:11.26ID:FIKXvkBI0 Javaがとてもシンプルな言語に見えてくる
622デフォルトの名無しさん (スププ Sdff-OWKl)
2019/05/24(金) 14:27:11.63ID:YkjJvwKvd linux kernelなんておもくそオブジェクト指向的な構造だろ
623デフォルトの名無しさん (ワッチョイ e701-/OyN)
2019/05/24(金) 19:13:34.31ID:E0qJKDus0 関係ないけどOOPが流行り始めた頃に「WindowsのUIはオブジェクト指向だ」と言ってたやつを思い出した。
624デフォルトの名無しさん (ワッチョイ 7f63-buEI)
2019/05/24(金) 19:26:36.07ID:omgaeJxY0 目指していた方向はそうだったと思う
628デフォルトの名無しさん (アウアウウー Saab-EYzY)
2019/05/24(金) 20:41:47.14ID:1FXcUtRQa いやできなくはないよ。何せC++は元々はCへのコンバータだったしな。C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。
もちろんCは言語そのものがオブジェクト指向をサポートしてないから人間がそれをやろうとするととても面倒な事になるけどな。
もちろんCは言語そのものがオブジェクト指向をサポートしてないから人間がそれをやろうとするととても面倒な事になるけどな。
629デフォルトの名無しさん (ワッチョイ e701-/OyN)
2019/05/24(金) 20:51:16.47ID:E0qJKDus0 そんなん言い始めたらアセンブラでもオブジェクト指向プログラミングできることになっちゃう。
言語としてOOPがサポートされてなきゃ認められないでしょ。
言語としてOOPがサポートされてなきゃ認められないでしょ。
>>628
>C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。
C++ から C へのトランスパイラが存在したからといって、C にてオブジェクト指向(的ではなくそのものずばり)なプログラミングができるわけではありません
C++ のコンパイラが存在するからといって機械語が OO でないのと同じです、まず、
C++ https://ideone.com/vAp2Sj
に対応する C のコードを示してください
>C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。
C++ から C へのトランスパイラが存在したからといって、C にてオブジェクト指向(的ではなくそのものずばり)なプログラミングができるわけではありません
C++ のコンパイラが存在するからといって機械語が OO でないのと同じです、まず、
C++ https://ideone.com/vAp2Sj
に対応する C のコードを示してください
632デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/24(金) 21:12:51.85ID:ZwmHdTYl0 >>610
全く問題にならない
classというキーワードがなくても
コードを書く者の考え方次第でカプセル化や継承はできる
FILE構造体がその例だ
多態性がないというのは、おまえさんの認識不足で
関数ポインタでそんなものはすぐに実現できる
そういう認識不足があるからこそ
メジャーなカーネルをなぜ書けたかが理解できないのだ
全く問題にならない
classというキーワードがなくても
コードを書く者の考え方次第でカプセル化や継承はできる
FILE構造体がその例だ
多態性がないというのは、おまえさんの認識不足で
関数ポインタでそんなものはすぐに実現できる
そういう認識不足があるからこそ
メジャーなカーネルをなぜ書けたかが理解できないのだ
633デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/24(金) 21:15:04.81ID:ZwmHdTYl0634デフォルトの名無しさん (アウアウエー Sa9f-eVvB)
2019/05/24(金) 21:24:37.67ID:QPLeHwR8a まあ継承なんてオブジェクト指向と関係ないよ
637デフォルトの名無しさん (ワッチョイ e701-GX6Y)
2019/05/24(金) 21:56:28.68ID:wwZ4gkZH0 仮想関数テーブルの実装方法について語るスレはここですか?
638デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/24(金) 22:01:07.63ID:ZwmHdTYl0639デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/24(金) 22:02:14.93ID:ZwmHdTYl0640蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 2701-6B7C)
2019/05/24(金) 22:06:22.36ID:/xfbOr910 >>638
ではストロヴストルップやリップマンはどういっているのか、ここに引用していただけますか?
あらかじめいっておきますが、引用はできない、なぜならば、そんな内容をストロヴストルップもリップマンも書いていないのだから
ではストロヴストルップやリップマンはどういっているのか、ここに引用していただけますか?
あらかじめいっておきますが、引用はできない、なぜならば、そんな内容をストロヴストルップもリップマンも書いていないのだから
642デフォルトの名無しさん (ワッチョイ df01-LXA5)
2019/05/24(金) 22:18:09.05ID:TMKOHW7N0643デフォルトの名無しさん (ワッチョイ e701-1x1Z)
2019/05/24(金) 22:21:05.39ID:0NhXAFL60 概念ならFILE構造体とそれの操作関数群
>>642
それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います
それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います
646デフォルトの名無しさん (ワッチョイ e701-1x1Z)
2019/05/24(金) 22:24:05.41ID:0NhXAFL60 コンストラクタとデストラクタの機構だけは欲しいと思ったことがしばしば
648デフォルトの名無しさん (ブーイモ MMcf-wr5r)
2019/05/24(金) 22:41:32.12ID:K6buSCwsM glibとか大昔からあるじゃん…
glibがooでないならooの定義をまず示せ
glibがooでないならooの定義をまず示せ
649デフォルトの名無しさん (アウアウカー Sa3b-eVvB)
2019/05/24(金) 22:42:05.32ID:hUeULEjja オブジェクト指向ってC++固有の概念なの?
だとすると、そりゃCで実現は無理でしょう。関係ないんだから。CとC++は。
だとすると、そりゃCで実現は無理でしょう。関係ないんだから。CとC++は。
>>648
glibc++ は OO かもしれませんが glibc が OO だとは寡聞にして聞きませんね
glibc++ は OO かもしれませんが glibc が OO だとは寡聞にして聞きませんね
652デフォルトの名無しさん (アウアウカー Sa3b-eVvB)
2019/05/24(金) 22:50:26.22ID:hUeULEjja653デフォルトの名無しさん (アウアウカー Sa3b-eVvB)
2019/05/24(金) 22:51:22.70ID:hUeULEjja654蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 2701-uiLC)
2019/05/24(金) 22:53:40.43ID:/xfbOr910 GTKのGLibだよね。
656デフォルトの名無しさん (ブーイモ MMcf-wr5r)
2019/05/24(金) 22:55:59.59ID:K6buSCwsM657デフォルトの名無しさん (ワッチョイ c7c3-OWKl)
2019/05/24(金) 23:36:16.20ID:SCqWQYPI0658デフォルトの名無しさん (ワッチョイ c7c3-OWKl)
2019/05/24(金) 23:46:49.71ID:SCqWQYPI0659デフォルトの名無しさん (ワッチョイ bfba-GX6Y)
2019/05/24(金) 23:58:34.02ID:S5Q/uU3j0 >>655
CでもOOできるし、継承できるし、オーバーライドもできる。
20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。
メモリを意識したコードを書けない人には理解できないけどね。
CでもOOできるし、継承できるし、オーバーライドもできる。
20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。
メモリを意識したコードを書けない人には理解できないけどね。
660デフォルトの名無しさん (ワッチョイ dfb9-9b2Z)
2019/05/25(土) 00:01:58.97ID:7Hh+Cor80 C言語はABIが標準化されている、という文を見たんですが、
その標準仕様の名前は何ですか?
新しいプラットフォームがその標準仕様を満たせば
バイナリレベルあるいはソースレベルで移植性があるんでしょうか?
その標準仕様の名前は何ですか?
新しいプラットフォームがその標準仕様を満たせば
バイナリレベルあるいはソースレベルで移植性があるんでしょうか?
661デフォルトの名無しさん (ワッチョイ bfba-GX6Y)
2019/05/25(土) 00:07:07.65ID:KPhaQb+n0662デフォルトの名無しさん (ワッチョイ c7c3-OWKl)
2019/05/25(土) 00:11:09.80ID:oops2jeN0 アーキテクチャ跨いでABIが統一できるわけないよね
引数の渡し方なんてアーキテクチャ変わったらそもそも使えるレジスタ変わるし
同一アーキテクチャの特定OS内ならバージョン変わってもABI互換ってのは良くあるけど
引数の渡し方なんてアーキテクチャ変わったらそもそも使えるレジスタ変わるし
同一アーキテクチャの特定OS内ならバージョン変わってもABI互換ってのは良くあるけど
664デフォルトの名無しさん (ワッチョイ df01-LXA5)
2019/05/25(土) 05:52:48.29ID:Tic4GHY30665デフォルトの名無しさん (ワッチョイ df79-buEI)
2019/05/25(土) 05:57:11.32ID:6KmI3UXB0 Cでオブジェクト指向プログラムなんて書くのは時間の無駄
速度が必要な部分だけCで作るのが正解
速度が必要な部分だけCで作るのが正解
666デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/25(土) 06:05:28.22ID:6T2yG8cn0667デフォルトの名無しさん (ドコグロ MM9f-LXA5)
2019/05/25(土) 07:19:56.39ID:DOpjF4HUM >>658
>多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ
C では構造体のメンバの順番をプログラムから指定することはできたのでしょうか?
C コンパイラはアラインメントを考慮して最適化をはかり構造体のメンバを、プログラマの記述から適宜入れ替えていもいいのでは?
となると一つめのメンバにベースクラスのインスタンスを書いても、コンパイラに入れ替えられてしまっては無意味なのでは?
>多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ
C では構造体のメンバの順番をプログラムから指定することはできたのでしょうか?
C コンパイラはアラインメントを考慮して最適化をはかり構造体のメンバを、プログラマの記述から適宜入れ替えていもいいのでは?
となると一つめのメンバにベースクラスのインスタンスを書いても、コンパイラに入れ替えられてしまっては無意味なのでは?
>>666
>てめえの怠慢を俺が尻拭いする筋合いはねえぜ
あなたは私の怠慢を主張するのと同様の筋で、私はあなたの欺瞞を主張します
出典元や引用を正確にできないのであれば、あなたは嘘をついていると判断されてもしかたがないと思います
>てめえの怠慢を俺が尻拭いする筋合いはねえぜ
あなたは私の怠慢を主張するのと同様の筋で、私はあなたの欺瞞を主張します
出典元や引用を正確にできないのであれば、あなたは嘘をついていると判断されてもしかたがないと思います
>>661
片山先生は私とは比較にならないほど生産性の高いプログラマですよ
片山先生は私とは比較にならないほど生産性の高いプログラマですよ
673デフォルトの名無しさん (ワッチョイ df01-LXA5)
2019/05/25(土) 16:17:34.75ID:Tic4GHY30 >>673
コメントありがとうございます。確かに >>668 には誤りが含まれていました
ISO/IEC 9899:1999
6.7.2.1.5
As discussed in 6.2.5, a structure is a type consisting of a sequence of members, whose
storage is allocated in an ordered sequence,
JIS X3010:2003
構造体は,メンバの列から成る型とし,メンバの記憶域は,並べられた順に割り付ける(6.2.5参照)。
しかし、この記述は構造体のパディングが構造体の先頭に詰められる場合を排除していないと考えます
よって、>>658
>多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書く
>それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる
構造体の先頭にパディングがあった場合は、この記述は正しくないのではないでしょうか。
コメントありがとうございます。確かに >>668 には誤りが含まれていました
ISO/IEC 9899:1999
6.7.2.1.5
As discussed in 6.2.5, a structure is a type consisting of a sequence of members, whose
storage is allocated in an ordered sequence,
JIS X3010:2003
構造体は,メンバの列から成る型とし,メンバの記憶域は,並べられた順に割り付ける(6.2.5参照)。
しかし、この記述は構造体のパディングが構造体の先頭に詰められる場合を排除していないと考えます
よって、>>658
>多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書く
>それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる
構造体の先頭にパディングがあった場合は、この記述は正しくないのではないでしょうか。
>>674
> a type consisting of a sequence of members, whose storage is allocated …
この is にも惑わされてしまいました
これは
a type consisting of a sequence of members, each of which is allocated about storage in an ordered sequence
とか
a type consisting of a sequence of members, each of which's storage is allocated in an ordered sequence
くらいに解釈するべきなんですね
検討する機会をいただきありがとうございました
> a type consisting of a sequence of members, whose storage is allocated …
この is にも惑わされてしまいました
これは
a type consisting of a sequence of members, each of which is allocated about storage in an ordered sequence
とか
a type consisting of a sequence of members, each of which's storage is allocated in an ordered sequence
くらいに解釈するべきなんですね
検討する機会をいただきありがとうございました
677デフォルトの名無しさん (ブーイモ MMcb-wr5r)
2019/05/25(土) 21:04:32.61ID:DDy3bloZM >>675
絶対許さんぞおおおお
絶対許さんぞおおおお
678デフォルトの名無しさん (アウアウエー Sa9f-eVvB)
2019/05/25(土) 21:07:06.72ID:aM9QB8YDa オブジェクト指向って抽象化が目的なのに、メモリ配置とか気にするのは馬鹿みたいだよな
679デフォルトの名無しさん (ワッチョイ e701-GX6Y)
2019/05/25(土) 21:23:55.56ID:cjrLAMgS0 MicrosoftのCOMはほとんど全てのコンパイラが構造体のメモリ配列を同じ様にするってのを利用してるんだっけ?
680デフォルトの名無しさん (ドコグロ MMeb-LXA5)
2019/05/25(土) 22:13:30.07ID:UN9uDEfaM >>678
ここにも概念と実装の区別がついてないバカが…w
ここにも概念と実装の区別がついてないバカが…w
681デフォルトの名無しさん (ワッチョイ bfba-GX6Y)
2019/05/25(土) 23:25:49.27ID:KPhaQb+n0 >>669
C言語でオブジェクト指向を表現する (クラス、継承)
https://qiita.com/qiita_kuru/items/8f3441bce9b2f53d1d62
この辺でも読んどけ。
「何故できるか」まで言及したもっといい文献はあるがカスには教えない。
俺は「せざるを得ない」状況だったのでCでOOしたが、ネイティブでOOできるならそれに越したことはない。
あ、同じ板でハッシュが一致してるのでお前は蟻。
C言語でオブジェクト指向を表現する (クラス、継承)
https://qiita.com/qiita_kuru/items/8f3441bce9b2f53d1d62
この辺でも読んどけ。
「何故できるか」まで言及したもっといい文献はあるがカスには教えない。
俺は「せざるを得ない」状況だったのでCでOOしたが、ネイティブでOOできるならそれに越したことはない。
あ、同じ板でハッシュが一致してるのでお前は蟻。
682デフォルトの名無しさん (アウアウエー Sa9f-eVvB)
2019/05/26(日) 01:24:13.78ID:zv+FEFKTa >>681
またおまえか
またおまえか
683デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/26(日) 08:36:08.16ID:o+/j3IaP0684デフォルトの名無しさん (ワッチョイ e7dc-dCWx)
2019/05/26(日) 08:56:22.54ID:7tI1cTYc0 もうこんなとこで喧嘩しても勝敗つかないんだからやめろw
仲良くできねえのかお前らは
仲良くできねえのかお前らは
685デフォルトの名無しさん (ワッチョイ df2c-o9SV)
2019/05/26(日) 12:29:05.12ID:lzKtO2WM0 でも冷静になって考えてみろ
単細胞時代から何億年と喧嘩してきた結果今の人間がいる訳だから喧嘩をやめてしまったらそれは果たして生物と言えるのか
逆に言えばAIが人知を超える時
人間は機械に滅ぼされ地球から人間はいなくなっているという事
つまり今何をすべきかと言うと人間は思考をやめアホになるべきである
そうアホの坂田こそ未来の救世主ネオなのである
単細胞時代から何億年と喧嘩してきた結果今の人間がいる訳だから喧嘩をやめてしまったらそれは果たして生物と言えるのか
逆に言えばAIが人知を超える時
人間は機械に滅ぼされ地球から人間はいなくなっているという事
つまり今何をすべきかと言うと人間は思考をやめアホになるべきである
そうアホの坂田こそ未来の救世主ネオなのである
>>681
そのご紹介のリンク先は、内容について、はっきりいって詰めが甘いです
すなわち、継承と委譲を区別できていません
そんな中途半端な理解で quita に掲載するとか、玉か石かどちらかといえば、石の部類でしょう、全然参考になりませんでした
そんな中途半端な内容の記事を掲載するあなたも同様と判断いたします
そのご紹介のリンク先は、内容について、はっきりいって詰めが甘いです
すなわち、継承と委譲を区別できていません
そんな中途半端な理解で quita に掲載するとか、玉か石かどちらかといえば、石の部類でしょう、全然参考になりませんでした
そんな中途半端な内容の記事を掲載するあなたも同様と判断いたします
688デフォルトの名無しさん (ワッチョイ df33-Fpyl)
2019/05/26(日) 15:46:43.76ID:aNhG7Lwu0 >>686
「継承」に必要な操作一式を委譲に基づいて提供できているなら継承できていると思うんだけど、
言語サポートを伴って暗黙的に機能しない限り「継承」と呼ぶべきではない、ということなの?
そこで明確に区別することにあんまり意義が見出せないんだけど、その定義どっか出典示せる?
「継承」に必要な操作一式を委譲に基づいて提供できているなら継承できていると思うんだけど、
言語サポートを伴って暗黙的に機能しない限り「継承」と呼ぶべきではない、ということなの?
そこで明確に区別することにあんまり意義が見出せないんだけど、その定義どっか出典示せる?
>>688
委譲による実装で継承を実現できているのなら、それは継承(の一形態)である、…@ という主張ですね
@は私にも理解できますが、委譲はダイヤモンド継承を回避できない欠点があるのでは、と考えています
「ダイヤモンド継承」については C++ の書籍には大概載っているかと、具体的な書籍名は探しておきます
委譲による実装で継承を実現できているのなら、それは継承(の一形態)である、…@ という主張ですね
@は私にも理解できますが、委譲はダイヤモンド継承を回避できない欠点があるのでは、と考えています
「ダイヤモンド継承」については C++ の書籍には大概載っているかと、具体的な書籍名は探しておきます
690デフォルトの名無しさん (ワッチョイ df59-eVvB)
2019/05/26(日) 16:00:20.28ID:Jdhtsrqd0 まあ継承なんてオブジェクト指向と関係ないからね
692デフォルトの名無しさん (ワッチョイ df33-Fpyl)
2019/05/26(日) 16:08:55.02ID:aNhG7Lwu0 >>689
ちょっと何言ってるかわからないな。
ダイアモンド継承の問題を「継承」で回避しているが委譲では回避できないであろう例を挙げてくれたら考える。
明確に区別しないことも理解できると言うなら「詰めが甘い」とか「中途半端」とか言ってたのは何なのか・・・。
ちょっと何言ってるかわからないな。
ダイアモンド継承の問題を「継承」で回避しているが委譲では回避できないであろう例を挙げてくれたら考える。
明確に区別しないことも理解できると言うなら「詰めが甘い」とか「中途半端」とか言ってたのは何なのか・・・。
693デフォルトの名無しさん (ワッチョイ df59-eVvB)
2019/05/26(日) 16:22:19.45ID:Jdhtsrqd0 >>691
なにって、言語を知りたいということ?
なにって、言語を知りたいということ?
694デフォルトの名無しさん (ワッチョイ a7da-n/qg)
2019/05/26(日) 16:37:44.23ID:vwTAovQx0 クラスベースのOOP言語ではクラスの継承は一般的だけどプロトタイプベースのOOP言語では継承の概念は存在しないよ
>>692
クラス A, B, C, D について、
A のメンバ変数を a とする、また
B->A(B は A を派生する)
C->A
D->B, C (多重継承)
において、これを委譲で実装すると、B.A.a と C.A.a が同じであるべきにもかかわらず二重にインスタンスとして生成されてしまうので、
継承で実装した D.a を、委譲で実装した D.B.a と同一視するか、D.C.a と同一視するか、また継承における D.a を更新した場合に委譲では D.B.a と D.C.a の両方を更新するコードを生成しなければならないのか、
等あいまいな部分がでてくる、これがダイヤモンド継承問題です
継承で実装すれば、C++ ではこれを仮想継承といいますが D.a の実態を一つに限定することができますし、D.B.a, D.C.a の両方を保存することもできます、つまりモデリングにおいて選択肢を準備できる
しかし委譲で実装すると D.a の実態を一つに限定することが不可能です、つまり選択肢を準備できません
以上より委譲で継承のすべてを代行できないため、委譲と継承を区別する必要が生じると考えます
ただし、多重継承を認めないのであれば、委譲と継承は同一視しても差し支えないと考えます
クラス A, B, C, D について、
A のメンバ変数を a とする、また
B->A(B は A を派生する)
C->A
D->B, C (多重継承)
において、これを委譲で実装すると、B.A.a と C.A.a が同じであるべきにもかかわらず二重にインスタンスとして生成されてしまうので、
継承で実装した D.a を、委譲で実装した D.B.a と同一視するか、D.C.a と同一視するか、また継承における D.a を更新した場合に委譲では D.B.a と D.C.a の両方を更新するコードを生成しなければならないのか、
等あいまいな部分がでてくる、これがダイヤモンド継承問題です
継承で実装すれば、C++ ではこれを仮想継承といいますが D.a の実態を一つに限定することができますし、D.B.a, D.C.a の両方を保存することもできます、つまりモデリングにおいて選択肢を準備できる
しかし委譲で実装すると D.a の実態を一つに限定することが不可能です、つまり選択肢を準備できません
以上より委譲で継承のすべてを代行できないため、委譲と継承を区別する必要が生じると考えます
ただし、多重継承を認めないのであれば、委譲と継承は同一視しても差し支えないと考えます
>>693-694
ふーん、インタプリタ JavaScript には継承はないのですか
ふーん、インタプリタ JavaScript には継承はないのですか
697デフォルトの名無しさん (ワッチョイ a7da-n/qg)
2019/05/26(日) 16:41:38.74ID:vwTAovQx0699デフォルトの名無しさん (アウアウエー Sa9f-eVvB)
2019/05/26(日) 17:11:49.57ID:iR9VJ5EUa 継承がオブジェクト指向と無関係なんだから、委譲で実現する必要がない
700デフォルトの名無しさん (ワッチョイ df33-Fpyl)
2019/05/26(日) 17:25:25.86ID:aNhG7Lwu0 >>695
C++が仮想継承・多重継承でやっていることをコードで書き下せば済む話。
アップキャストがnopで済むか、オフセットの足し算になるかなどの詳細に基づいて区別しろってことに
聞こえるんだけど、やっぱりそんな区別の意義が見えてこない。
C++が仮想継承・多重継承でやっていることをコードで書き下せば済む話。
アップキャストがnopで済むか、オフセットの足し算になるかなどの詳細に基づいて区別しろってことに
聞こえるんだけど、やっぱりそんな区別の意義が見えてこない。
701デフォルトの名無しさん (ワッチョイ df01-LXA5)
2019/05/26(日) 17:39:21.34ID:kcdU4Ge60 もうそろそろ別スレ立ててやれや
> それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います
とか言う様な奴を相手にしても永遠に終わらんと思うが…
> それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います
とか言う様な奴を相手にしても永遠に終わらんと思うが…
>>700
>C++が仮想継承・多重継承でやっていることをコードで書き下せば済む話。
そこで実現されているのは私のいうところの継承であって、私のいうところの委譲ではありません
委譲ではダイヤモンド継承に対応できない(選択肢を提供できない)
したがって、委譲と継承とは区別するべきであり委譲で継承を実装するべきではない、という私の主観には一貫性があると思います
>C++が仮想継承・多重継承でやっていることをコードで書き下せば済む話。
そこで実現されているのは私のいうところの継承であって、私のいうところの委譲ではありません
委譲ではダイヤモンド継承に対応できない(選択肢を提供できない)
したがって、委譲と継承とは区別するべきであり委譲で継承を実装するべきではない、という私の主観には一貫性があると思います
703デフォルトの名無しさん (ワッチョイ 877c-eVvB)
2019/05/26(日) 17:56:41.22ID:NrZyzakr0704デフォルトの名無しさん (ワッチョイ df33-Fpyl)
2019/05/26(日) 18:07:56.35ID:aNhG7Lwu0 >>703
私がいつ「継承は要らない子」とかいいましたか?
あくまでも「継承を委譲で実装できない」とは言っていますが(これは部分的に意見を修正していますが)「継承不要論」とかは一切主張していないと考えていますよ
私がいつ「継承は要らない子」とかいいましたか?
あくまでも「継承を委譲で実装できない」とは言っていますが(これは部分的に意見を修正していますが)「継承不要論」とかは一切主張していないと考えていますよ
>>704
継承と委譲の区別は必要だと思いますよ、その言葉を贈らせていただきましょう
継承と委譲の区別は必要だと思いますよ、その言葉を贈らせていただきましょう
707デフォルトの名無しさん (ワッチョイ 877c-eVvB)
2019/05/26(日) 18:34:08.86ID:NrZyzakr0708デフォルトの名無しさん (ワッチョイ 7f63-+klA)
2019/05/26(日) 18:57:26.86ID:mCW+tIqA0 もういい加減やめてくれないかな
やりたいなら、Cでクラス実装とかって
別スレたててその中でやってくれ
やりたいなら、Cでクラス実装とかって
別スレたててその中でやってくれ
709デフォルトの名無しさん (ワッチョイ 877c-eVvB)
2019/05/26(日) 19:03:45.32ID:NrZyzakr0 >>708
またおまえか
またおまえか
710デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/26(日) 20:50:42.22ID:o+/j3IaP0711デフォルトの名無しさん (ワッチョイ bfba-GX6Y)
2019/05/26(日) 23:38:41.06ID:SA/0I36h0 >>686
煽って、良い文献の情報を得ようとしているのだろうが、カスにはやらんよwwww
煽って、良い文献の情報を得ようとしているのだろうが、カスにはやらんよwwww
712デフォルトの名無しさん (ワッチョイ dfad-Yys2)
2019/05/27(月) 01:54:45.96ID:sXav5Bzw0713デフォルトの名無しさん (ワッチョイ 7f63-+klA)
2019/05/27(月) 02:52:02.77ID:jiPRfYyG0 ソロソロ終わって良いですよね?
この議論は、C使っている人とは違う世界に感じる
この議論は、C使っている人とは違う世界に感じる
714デフォルトの名無しさん (ワッチョイ e77c-eVvB)
2019/05/27(月) 03:09:42.07ID:HzhW79+j0 >>713
またおまえか
またおまえか
715デフォルトの名無しさん (ワッチョイ 87d2-Ni/X)
2019/05/27(月) 09:01:49.81ID:Nqk3VxBP0 stddef.hをインクルードして
#define __STDC_WANT_LIB_EXT1__ 1
を定義して
-std=c11をつけても
gccでrsize_tが使えないですけど
なぜですか?
windows版のGCCでは使えました
#define __STDC_WANT_LIB_EXT1__ 1
を定義して
-std=c11をつけても
gccでrsize_tが使えないですけど
なぜですか?
windows版のGCCでは使えました
716デフォルトの名無しさん (アウアウカー Sa3b-eVvB)
2019/05/27(月) 09:23:40.73ID:or6IbtWZa defineの順番とか…
717デフォルトの名無しさん (ワッチョイ 87d2-Ni/X)
2019/05/27(月) 09:34:14.79ID:Nqk3VxBP0 >>716
順番は試しましたが駄目でした
順番は試しましたが駄目でした
718デフォルトの名無しさん (アウアウエー Sa9f-eVvB)
2019/05/27(月) 10:04:44.33ID:PB+ZSyAza rsize_tって多分オプションだから実装されてないよね?
windowsはなぜか実装してる
windowsはなぜか実装してる
719デフォルトの名無しさん (ワッチョイ bfba-9b2Z)
2019/05/27(月) 10:11:08.57ID:Zyn15i1D0 C#でポインタ使えばC、C++は無くても良いんじゃないですか?
720デフォルトの名無しさん (ラクペッ MM7b-n/qg)
2019/05/27(月) 10:15:55.39ID:gR3ITcWOM C#使うならポインタのように面倒臭いこと考えなくても変数でも関数でも参照できるだろ
721デフォルトの名無しさん (ワッチョイ df79-buEI)
2019/05/27(月) 19:48:50.47ID:0mZL0xC90 C#のポインタはC/C++ほど使い勝手が良くない
C#でポインタを使ったところでパフォーマンスはC++の半分程度
まあトータルで見れば最優秀クラスの言語なのは間違いないけどね
C++みたいなスパゲティ言語ではないし
C#でポインタを使ったところでパフォーマンスはC++の半分程度
まあトータルで見れば最優秀クラスの言語なのは間違いないけどね
C++みたいなスパゲティ言語ではないし
722デフォルトの名無しさん (アウアウウー Saab-EYzY)
2019/05/27(月) 20:36:21.78ID:f4m/nmMua まあ、だいたいの後から出た言語はC/C++の欠点を補おうとしているのでポインタがあっても安全なのが普通だな。
723デフォルトの名無しさん (ワッチョイ c7c3-OWKl)
2019/05/27(月) 20:42:45.71ID:MaSSH1d10 安全じゃないのがc#のポインタの特長だろ。
特徴じゃなく
特徴じゃなく
724デフォルトの名無しさん (アウアウウー Saab-/OyN)
2019/05/27(月) 21:12:57.55ID:RgnUDQi4a そりゃC#のポインタ使うにはunsafeオプションが必要だからね。安全じゃないわね。
C#のポインタは過去資産APIを使うための必要悪って感じか。
C#のポインタは過去資産APIを使うための必要悪って感じか。
725デフォルトの名無しさん (ドコグロ MM1b-LXA5)
2019/05/28(火) 07:12:55.99ID:gr6HI2ftM726デフォルトの名無しさん (ワッチョイ dfb9-9b2Z)
2019/05/28(火) 09:09:59.25ID:HGTlDNNW0 数年前からこのプロジェクトがちょっと注目されてるけどどう思う?
RustはC++を置き換えてもCを置き換えないだろうと思うし、
ZigはCの置き換えとしては妥当なんじゃないかという気がする。
Cより高速、単純、堅牢らしい。
https://ziglang.org/
RustはC++を置き換えてもCを置き換えないだろうと思うし、
ZigはCの置き換えとしては妥当なんじゃないかという気がする。
Cより高速、単純、堅牢らしい。
https://ziglang.org/
727デフォルトの名無しさん (ワッチョイ dfb9-9b2Z)
2019/05/28(火) 09:29:30.01ID:HGTlDNNW0 Cより速いと主張
>Speaking of performance, Zig is faster than C.
単純な言語仕様
>Small, simple language
性能と堅牢性
>Performance and Safety: Choose Two
個人的にとても興味を持ってるんだが
>Speaking of performance, Zig is faster than C.
単純な言語仕様
>Small, simple language
性能と堅牢性
>Performance and Safety: Choose Two
個人的にとても興味を持ってるんだが
728デフォルトの名無しさん (ワッチョイ df79-buEI)
2019/05/28(火) 17:05:35.46ID:5GqHhS1Q0 CはC++ほどではないにせよ色々酷いから
Cを置き換えられる言語があるなら見てみたいしぜひ置き換えてほしい
Cを置き換えられる言語があるなら見てみたいしぜひ置き換えてほしい
729デフォルトの名無しさん (ワッチョイ dfa5-vAXu)
2019/05/28(火) 17:30:53.21ID:vL2LyOeQ0 >>726
ttps://www.spriters-resource.com/resources/sheets/34/36939.png
ちょっと検索してみたらもうドット絵まで準備されてるらしい
さすがに西洋人は仕事が早いな
ttps://www.spriters-resource.com/resources/sheets/34/36939.png
ちょっと検索してみたらもうドット絵まで準備されてるらしい
さすがに西洋人は仕事が早いな
730デフォルトの名無しさん (ワッチョイ df01-1tV+)
2019/05/28(火) 19:02:59.10ID:Pzgny9jf0 https://www.datadeliver.net/receiver/file_box.do?fb=966f97555e424f19a29d0d866b4b3cf5&rc=683943257e194056afc95195b542ba5d&lang=ja
キューを実装する?プログラムを書いたのだがコアダンプになってしまったため、どこが悪いのか調べるために1回だけenqueueをするように変えたら無限に10を生成するようになってしまった
どこが悪かったのか、どうして10が無限に生成されるのか、教えて欲しい
環境は学校の端末演習室でやったから詳しいことはわからんです
キューを実装する?プログラムを書いたのだがコアダンプになってしまったため、どこが悪いのか調べるために1回だけenqueueをするように変えたら無限に10を生成するようになってしまった
どこが悪かったのか、どうして10が無限に生成されるのか、教えて欲しい
環境は学校の端末演習室でやったから詳しいことはわからんです
731デフォルトの名無しさん (ワッチョイ 075f-dzUy)
2019/05/28(火) 19:04:37.65ID:F6815kaN0732デフォルトの名無しさん (ワッチョイ dfa5-vAXu)
2019/05/28(火) 20:11:39.46ID:vL2LyOeQ0 「無限に10を生成するようになってしまった」「どうして10が無限に生成されるのか」
コレがポイントだな
無限に生成してるように見えるだけだよ
要するにprintが悪い
whileだと分かりづらいんだよ
forだとラク
「q->head = temp;」とか、自分で書いてて分からなかったんだろ
だからwhile文だとこのケースでは分かりにくくなる
forを試gうのが正解
void print(struct queuel *q){
struct cell *pt;
printf("[");
for( pt = q; pt != NULL; pt = pt->next ){
printf(" %d", pt->data);
}
printf(" ]\n");
}
コレがポイントだな
無限に生成してるように見えるだけだよ
要するにprintが悪い
whileだと分かりづらいんだよ
forだとラク
「q->head = temp;」とか、自分で書いてて分からなかったんだろ
だからwhile文だとこのケースでは分かりにくくなる
forを試gうのが正解
void print(struct queuel *q){
struct cell *pt;
printf("[");
for( pt = q; pt != NULL; pt = pt->next ){
printf(" %d", pt->data);
}
printf(" ]\n");
}
733デフォルトの名無しさん (アウアウウー Saab-EYzY)
2019/05/28(火) 21:09:24.77ID:Rd7hCJnFa734デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/28(火) 21:27:52.19ID:jSvCRMUQ0 Pascalが嫌いな人が作った言語だ
735デフォルトの名無しさん (ワッチョイ df01-LXA5)
2019/05/28(火) 22:21:26.92ID:/lAZ9dU10736デフォルトの名無しさん (アウアウウー Saab-EYzY)
2019/05/28(火) 22:24:51.47ID:Rd7hCJnFa737デフォルトの名無しさん (ワッチョイ 67f6-dCWx)
2019/05/28(火) 23:20:22.65ID:jSvCRMUQ0 安全性って何だよ
インテルのerrataみたいなことか?
インテルのerrataみたいなことか?
738デフォルトの名無しさん (ワッチョイ 7f63-+klA)
2019/05/28(火) 23:34:40.02ID:IamnQRk90 子供にはナイフを使わせるなというのと同じ類いか
739デフォルトの名無しさん (ワッチョイ df01-LXA5)
2019/05/29(水) 04:57:03.97ID:mWed49vm0 >>736
いやOSを書くにはその安全性が邪魔になるから両立は難しいよ
いやOSを書くにはその安全性が邪魔になるから両立は難しいよ
740デフォルトの名無しさん (ワッチョイ dfb9-9b2Z)
2019/05/29(水) 06:20:35.18ID:D5Uzvk1s0 OSのコードはどんな感じなの?
ポインタを使ったトリッキーな事をやってるの?
未だにLinuxでバッファオーバーフローの脆弱性出てるよね
ポインタを使ったトリッキーな事をやってるの?
未だにLinuxでバッファオーバーフローの脆弱性出てるよね
741デフォルトの名無しさん (ドコグロ MM3b-LXA5)
2019/05/29(水) 06:48:57.50ID:Bfh00rIBM >>740
OSのソースなんてちょっとググればいくらでも出てくるから自分で見なよ
OSのソースなんてちょっとググればいくらでも出てくるから自分で見なよ
742デフォルトの名無しさん (ワッチョイ 67ab-K/jJ)
2019/05/29(水) 07:45:37.52ID:6C23lth10 見たこともないやつが議論してたのかよ
743デフォルトの名無しさん (ワッチョイ dfa5-vAXu)
2019/05/29(水) 08:03:59.01ID:aFUCBt4U0 詳細linuxとかいう1000ページの宗教書だろ
持ってるだけで御利益がある
持ってるだけで御利益がある
744デフォルトの名無しさん (スプッッ Sd9f-OWKl)
2019/05/29(水) 08:13:08.04ID:akQz27P/d オープンソースなのだから1分もあればソースコードくらい見られるだろうに
746デフォルトの名無しさん (アウアウエー Sa9f-eVvB)
2019/05/29(水) 19:51:04.91ID:D+pGsdPRa 今普通に静的・動的解析使うとバッファオーバーフローなんてあり得ない感じするわ。
747デフォルトの名無しさん (ワッチョイ df73-buEI)
2019/05/29(水) 20:40:15.44ID:rT4tqcG+0 strcpyとかsprintfとか使ってるコードはまだたくさんあるでしょ
dstのサイズ指定しないライブラリとか
dstのサイズ指定しないライブラリとか
748デフォルトの名無しさん (アウアウウー Saab-EYzY)
2019/05/29(水) 21:00:57.32ID:FFsAnOexa Cは標準ライブラリ考え直した方が良いかもね。
749デフォルトの名無しさん (トンモー MM97-OIQ8)
2019/05/31(金) 08:23:23.52ID:JBiczG6TM Cが最も好きだけど、
C十十のほうがライブラリが
便利なのあるから、
個人で趣味で作るものは最近は
CとC++混在で作ります。
わりと自由に混在できるので
とても助かってます。
こうゆの俺だけですかね?
C十十のほうがライブラリが
便利なのあるから、
個人で趣味で作るものは最近は
CとC++混在で作ります。
わりと自由に混在できるので
とても助かってます。
こうゆの俺だけですかね?
750デフォルトの名無しさん (アウアウエー Sae2-z5vN)
2019/05/31(金) 08:28:11.59ID:7PD5X056a C††
751デフォルトの名無しさん (ワッチョイ eaa5-K9GS)
2019/05/31(金) 08:30:02.90ID:LyENK1r60 C‡‡
752デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
2019/05/31(金) 09:21:15.46ID:GTUdpXapa С++
↑
キリル文字
↑
キリル文字
753デフォルトの名無しさん (トンモー MM97-OIQ8)
2019/05/31(金) 18:42:40.60ID:JBiczG6TM C十十つ
―ー
―ー
754デフォルトの名無しさん (ワッチョイ 0b52-2ZOZ)
2019/05/31(金) 18:46:16.16ID:4felF8bG0 C田田
755デフォルトの名無しさん (ブーイモ MM97-v/1q)
2019/05/31(金) 19:11:42.88ID:Ki0lpFF5M C云々
756デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
2019/05/31(金) 19:45:27.77ID:/GnAMAD/a ⊂┼┼
757デフォルトの名無しさん (スップ Sd8a-sEZ+)
2019/05/31(金) 21:44:53.32ID:r0b/3vSWd C言語認定一級を取得したら転職でどれぐらい評価されますか?
758デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
2019/05/31(金) 21:48:01.31ID:I0+j7s4/a さあ?
その会社がどの程度その知識を必要としているかで変わるのでは?
その会社がどの程度その知識を必要としているかで変わるのでは?
759デフォルトの名無しさん (スップ Sd8a-sEZ+)
2019/05/31(金) 21:48:52.32ID:r0b/3vSWd >>758
そういうときは一般化して正確じゃなくても妥当な範囲で思考して回答する癖をつけましょうね〜
そういうときは一般化して正確じゃなくても妥当な範囲で思考して回答する癖をつけましょうね〜
760デフォルトの名無しさん (ワッチョイ 5b01-lck+)
2019/05/31(金) 21:56:26.15ID:OHagz7+U0 うちの周囲じゃ全く参考にもしていないし資格給が出るわけでもないって所が多いな
761デフォルトの名無しさん (ワッチョイ 9f02-yed5)
2019/05/31(金) 22:06:46.05ID:4X6MeSMk0 英検1級の方が重要そう。
762デフォルトの名無しさん (スフッ Sd8a-92O4)
2019/06/01(土) 11:44:52.57ID:2YdNSpFdd763デフォルトの名無しさん (ワッチョイ 8a52-gkx+)
2019/06/01(土) 18:13:48.99ID:w9UetZ9K0 >>762
それはC言語の問題ではなかろう
それはC言語の問題ではなかろう
764デフォルトの名無しさん (スフッ Sd8a-92O4)
2019/06/01(土) 18:56:55.84ID:2YdNSpFdd765デフォルトの名無しさん (ワッチョイ 8a52-gkx+)
2019/06/01(土) 19:26:44.16ID:w9UetZ9K0 >>764
それは使用する言語とは無関係に、雨らしく見せるアルゴリズムの問題ではないか?
ある処理をC言語で実現したいがどう書いていいか分からないとか、書いたものが想定通りにならないのはなぜかとかなら答えようがあるが。
それは使用する言語とは無関係に、雨らしく見せるアルゴリズムの問題ではないか?
ある処理をC言語で実現したいがどう書いていいか分からないとか、書いたものが想定通りにならないのはなぜかとかなら答えようがあるが。
766デフォルトの名無しさん (スフッ Sd8a-92O4)
2019/06/01(土) 21:18:58.51ID:2YdNSpFdd >>765
1番上の行で雨を発生させるとき何列目で発生させるかは乱数できめているはずなのに、何行か連続で同じ列に発生しているのがよく見られていて、それが何故なのかがわかりません。
このプログラムは改良中のもので、その前のプログラムは雨粒が全部同じ速さのやつを作っていてそれは問題なく(上の現象も起きず)動いていたので、乱数でなくプログラムの問題かなと思って質問しました
1番上の行で雨を発生させるとき何列目で発生させるかは乱数できめているはずなのに、何行か連続で同じ列に発生しているのがよく見られていて、それが何故なのかがわかりません。
このプログラムは改良中のもので、その前のプログラムは雨粒が全部同じ速さのやつを作っていてそれは問題なく(上の現象も起きず)動いていたので、乱数でなくプログラムの問題かなと思って質問しました
767デフォルトの名無しさん (ワッチョイ 0b52-2ZOZ)
2019/06/01(土) 21:37:41.87ID:njUSTe0T0 >>766
乱数っていうのは偏るものだから、同じ列に連続して発生することが普通。
同じ列に発生しないような作為をする場合は乱数とは言わないと思う。
https://twitter.com/Newton_Science/status/1031788874836529152
あと、'o'が縦に連続するのに違和感があるのなら'|'などに置き換えれば良いと思う。
https://i.imgur.com/wR1mNu5.gif
みたいな感じで
適当に作っててチカチカしちゃってるからあまり参考にならないかもしれない
https://twitter.com/5chan_nel (5ch newer account)
乱数っていうのは偏るものだから、同じ列に連続して発生することが普通。
同じ列に発生しないような作為をする場合は乱数とは言わないと思う。
https://twitter.com/Newton_Science/status/1031788874836529152
あと、'o'が縦に連続するのに違和感があるのなら'|'などに置き換えれば良いと思う。
https://i.imgur.com/wR1mNu5.gif
みたいな感じで
適当に作っててチカチカしちゃってるからあまり参考にならないかもしれない
https://twitter.com/5chan_nel (5ch newer account)
768デフォルトの名無しさん (スフッ Sd8a-92O4)
2019/06/01(土) 22:01:32.09ID:2YdNSpFdd >>767
すごい!!!
一気に雨っぽく見えるようになりましたw
乱数の件大変勉強になりました
もっと改良するとしたら、そのツイートのように不自然に見えるランダムさをなくすため振るいにかけるような工夫もしてみようと思います。
あと、もしよければGIFのやつのソースコードを貼ってもらえないでしょうか。よろしくお願いします
すごい!!!
一気に雨っぽく見えるようになりましたw
乱数の件大変勉強になりました
もっと改良するとしたら、そのツイートのように不自然に見えるランダムさをなくすため振るいにかけるような工夫もしてみようと思います。
あと、もしよければGIFのやつのソースコードを貼ってもらえないでしょうか。よろしくお願いします
769デフォルトの名無しさん (アウアウエー Sae2-z5vN)
2019/06/01(土) 22:03:49.20ID:gZsm+Fjra 一様分布でなくても乱数とは言えるだろう
770デフォルトの名無しさん (ワッチョイ 0b52-2ZOZ)
2019/06/01(土) 22:10:20.53ID:njUSTe0T0 >>768
一応貼るけど自分はC言語あまり得意でない上に適当にササっと作ったのだからあんまり参考にはしないでほしい
https://ideone.com/FG3nNS
system("cls")で画面更新してるけどチカチカさせずに滑らかに動かしたいならpdcursesとか使ったほうが良いと思う
あとLinuxだったらclsでは動かない
一応貼るけど自分はC言語あまり得意でない上に適当にササっと作ったのだからあんまり参考にはしないでほしい
https://ideone.com/FG3nNS
system("cls")で画面更新してるけどチカチカさせずに滑らかに動かしたいならpdcursesとか使ったほうが良いと思う
あとLinuxだったらclsでは動かない
771デフォルトの名無しさん (スププ Sd8a-92O4)
2019/06/02(日) 08:12:25.21ID:Df5btDJSd772デフォルトの名無しさん (ワッチョイ cbf6-2ZOZ)
2019/06/02(日) 13:28:56.70ID:gM/IYiKd0 constが外れるのにキャストせずに
char *p = "abc";
とできることを定めている条文どこだっけ?
char *p = "abc";
とできることを定めている条文どこだっけ?
773デフォルトの名無しさん (アウアウエー Sae2-z5vN)
2019/06/02(日) 14:35:27.10ID:hvNC8EHQa 初期化はちょっと違うんじゃねえかな
774デフォルトの名無しさん (ワッチョイ e69d-paY0)
2019/06/03(月) 19:44:47.54ID:JpBlPJqE0 https://i.imgur.com/bxgSD4n.jpg
ちんぷんかんぷんなので教えて下さい
ちんぷんかんぷんなので教えて下さい
775デフォルトの名無しさん (ワッチョイ 5bdc-2ZOZ)
2019/06/03(月) 19:47:13.69ID:aVpNGdHY0 火の玉ストレートでワロタw
776デフォルトの名無しさん (ワッチョイ 17c3-RRN7)
2019/06/03(月) 19:51:23.16ID:NMMhu3n80777デフォルトの名無しさん (ワッチョイ e69d-paY0)
2019/06/03(月) 19:56:34.99ID:JpBlPJqE0 解決しました
778デフォルトの名無しさん (ワッチョイ bb01-enjb)
2019/06/03(月) 19:56:39.36ID:vGrK+0JX0 もうちょっときれいに写せないのか
779デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
2019/06/03(月) 21:20:26.29ID:CuEu7mica 影があって見えない。
ていうか、試験中に撮影して書き込みか?
思い切ったカンニングだな。
ていうか、試験中に撮影して書き込みか?
思い切ったカンニングだな。
780772 (ワッチョイ cbf6-2ZOZ)
2019/06/03(月) 22:17:42.98ID:V6PZ+bAi0 (3)のとこ、この試験問題を作った教官がどういう教え方をしているのか聞かせてくれ
781デフォルトの名無しさん (ワッチョイ cbf6-2ZOZ)
2019/06/03(月) 22:19:26.68ID:V6PZ+bAi0 正解は *(const char **)&s なんだが解答群にねえだろ
782デフォルトの名無しさん (ワッチョイ 6a33-yed5)
2019/06/04(火) 01:35:34.87ID:TgdlAqGq0 >>781 C++11以降でもなさそうだし、回答群にあるsでいいでしょ。
783デフォルトの名無しさん (ワッチョイ 8a52-gkx+)
2019/06/04(火) 07:58:43.31ID:e9k+jtYr0784デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
2019/06/04(火) 10:12:17.26ID:prB+PlYza ワッチョイからすると別のようだが
785デフォルトの名無しさん (アークセー Sx33-enjb)
2019/06/04(火) 10:47:57.52ID:PKXus+yhx 簡単なテストがちんぷんかんぷんな人が規約を気にするとは思えない。
786デフォルトの名無しさん (SG 0H37-NP7i)
2019/06/04(火) 11:04:10.57ID:eBRK1s1cH 【速報】金券五百円分とすかいらーく優侍券をすぐもらえる
https://pbs.twimg.com/media/D8I_kMUUYAEOmcl.jpg
@ スマホでたいむばんくを入手
A 会員登録を済ませる
B マイページへ移動する
C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き)
今なら更に4日18時までの登録で2倍の600円の紹介金を入手
クオカードとすかいらーく優待券を両方ゲットできます。
数分で終えられるのでぜひお試し下さい。
https://pbs.twimg.com/media/D8I_kMUUYAEOmcl.jpg
@ スマホでたいむばんくを入手
A 会員登録を済ませる
B マイページへ移動する
C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き)
今なら更に4日18時までの登録で2倍の600円の紹介金を入手
クオカードとすかいらーく優待券を両方ゲットできます。
数分で終えられるのでぜひお試し下さい。
787デフォルトの名無しさん (SG 0Hab-z2gS)
2019/06/04(火) 13:24:20.51ID:VVsdR08YH >>786
QUOカード良いな
QUOカード良いな
788デフォルトの名無しさん (ブーイモ MM3f-Paxd)
2019/06/04(火) 15:35:37.38ID:ZIqEmt8SM >>786
複数スレに書き込みまくってID変えてレスも書き込みまくってる。
複数スレに書き込みまくってID変えてレスも書き込みまくってる。
789デフォルトの名無しさん (ワッチョイ 0b52-2ZOZ)
2019/06/04(火) 17:39:59.80ID:dFy1Csfg0 迷惑メール来るようになるっていう報告もあるからこれはスルーしたほうが良いと思う
790デフォルトの名無しさん (ワッチョイ 5bdc-2ZOZ)
2019/06/04(火) 17:46:57.34ID:VrCvogjT0 ありとあらゆるスレに貼られてるbotだから気にしなくていいぞw
791デフォルトの名無しさん (ワッチョイ be63-hDDM)
2019/06/04(火) 17:48:42.06ID:rpsLXROr0 内容を変えてNG対策すり抜けをやろうとしているから、悪質だと考えた
792デフォルトの名無しさん (アウアウウー Sa1f-gkx+)
2019/06/04(火) 18:10:41.59ID:QEritYjya サービスの提供もとに不正行為として通報して、そいつの招待コードとやらを無効にさせられないかな。
793デフォルトの名無しさん (ワッチョイ be63-hDDM)
2019/06/04(火) 18:49:11.42ID:rpsLXROr0 提供元も共犯だろう
794デフォルトの名無しさん (ワッチョイ 0b52-2ZOZ)
2019/06/04(火) 20:15:40.66ID:dFy1Csfg0 これってどこの企業がやってるんだろう
普通に5chでは荒らしに近い迷惑行為だしなんとかできないかな
普通に5chでは荒らしに近い迷惑行為だしなんとかできないかな
795デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
2019/06/04(火) 20:19:32.69ID:RBIldFVda しかし500円だの600円だのしょぼいな。
PayPayみたいにずっと二割引でたまに全額当たるぐらいやらなきゃ宣伝にならんだろう。
PayPayみたいにずっと二割引でたまに全額当たるぐらいやらなきゃ宣伝にならんだろう。
796デフォルトの名無しさん (ワッチョイ be63-hDDM)
2019/06/04(火) 20:43:44.67ID:rpsLXROr0 宣伝じゃなく、個人情報の収集だから
797デフォルトの名無しさん (ワッチョイ 7e12-DKzK)
2019/06/05(水) 00:33:04.12ID:ZHHYr8Rz0 とてもいいアプリだからダウンロードして星つけてあげたらいいと思うよ
798デフォルトの名無しさん (アウアウウー Sa1f-Y/KN)
2019/06/05(水) 10:04:09.95ID:Fd++qFdya 激しいステマ
799デフォルトの名無しさん (JP 0H73-Ywhw)
2019/06/07(金) 16:33:58.73ID:uIEpx76AH 真って0でしたっけ?1でしたっけ?0以外でしたっけ?1以外でしたっけ?
800デフォルトの名無しさん (アウアウエー Sa93-N0IE)
2019/06/07(金) 17:02:27.40ID:HLWbZT6Fa >>799
bool型の1です。
bool型の1です。
801デフォルトの名無しさん (ワッチョイ cde8-LJAA)
2019/06/07(金) 17:27:02.62ID:RHh4qcVs0 0以外は真として扱われることが多いな。
0は明示的にfalseになると思う。
そのfalseの否定がtrue。
0は明示的にfalseになると思う。
そのfalseの否定がtrue。
802デフォルトの名無しさん (ワッチョイ d769-0JeU)
2019/06/07(金) 17:31:47.53ID:OLbvc6Nr0 論理演算結果を整数化したら 偽が0 真は1
整数を論理評価したら 偽が0 で真はそれ以外
整数を論理評価したら 偽が0 で真はそれ以外
803デフォルトの名無しさん (ワッチョイ 8763-FAmt)
2019/06/07(金) 17:33:03.09ID:sehGKr170 #define TRUE (1==1)
#define FALSE (!TRUE)
こんな事書いてたな
値がいくつなのかは気にしなかった
#define FALSE (!TRUE)
こんな事書いてたな
値がいくつなのかは気にしなかった
804デフォルトの名無しさん (ワッチョイ f9d2-K3Ee)
2019/06/07(金) 20:41:26.72ID:NHeyKhkN0 OR EAX,EAX
JZ FALSE
JNZ TRUE
こんなんか?
JZ FALSE
JNZ TRUE
こんなんか?
805デフォルトの名無しさん (ワッチョイ cdab-BGv3)
2019/06/07(金) 21:31:11.89ID:51aJPRpO0 TRUEと比較するなって先輩に言われたろ
806デフォルトの名無しさん (ワッチョイ a101-0JeU)
2019/06/07(金) 21:37:49.54ID:e6zybBXY0 !!a == TRUE ならセーフになると思われるー
807デフォルトの名無しさん (スプッッ Sddb-7MqU)
2019/06/07(金) 22:15:27.47ID:RQudHa2vd 論理演算では1が真なのに終了は1が異常終了なのはなぜですか?
1が正しく0が間違いというイメージなのですが
1が正しく0が間違いというイメージなのですが
808デフォルトの名無しさん (ワッチョイ cde8-LJAA)
2019/06/07(金) 22:18:06.19ID:RHh4qcVs0 昔はintを返す習慣が多分にあったのでその習慣によるが、自分は異常終了は-1返してたな。
809デフォルトの名無しさん (アウアウカー Sad3-N0IE)
2019/06/07(金) 22:19:30.98ID:0dWbT8qma810デフォルトの名無しさん (ワッチョイ cdab-BGv3)
2019/06/07(金) 22:21:18.54ID:51aJPRpO0 エラーの種類を沢山返せるから
811デフォルトの名無しさん (ワッチョイ a101-0JeU)
2019/06/07(金) 22:23:25.13ID:e6zybBXY0 正常というのは1つの状態しかないが
異常には色々な種類があるのでそれを区別するためにコードとして返したい
というのと
2値しかない真偽をどう値に配分するか
というのを同列に並べるとパニック。 C言語では別のものとして割り切る
なぜC言語では偽を0に割り当てたのか?という問いの答えを求めているのならば…
俺は知らない
異常には色々な種類があるのでそれを区別するためにコードとして返したい
というのと
2値しかない真偽をどう値に配分するか
というのを同列に並べるとパニック。 C言語では別のものとして割り切る
なぜC言語では偽を0に割り当てたのか?という問いの答えを求めているのならば…
俺は知らない
812デフォルトの名無しさん (アークセー Sx63-gnfa)
2019/06/07(金) 22:23:54.80ID:Bjvb97BWx >>807
正常は 0でいいけど、異常はいろいろな状態の別を報告できるようにでは
正常は 0でいいけど、異常はいろいろな状態の別を報告できるようにでは
813デフォルトの名無しさん (ワッチョイ cdab-BGv3)
2019/06/07(金) 22:30:40.09ID:51aJPRpO0 ソフト会社に長年いて開発者からこの質問は初
OSインストールできませんなんてすごく高度なんだなって思った
コマンドのテストでコマンドの戻り値ってあるんですがなんですか?
OSインストールできませんなんてすごく高度なんだなって思った
コマンドのテストでコマンドの戻り値ってあるんですがなんですか?
814デフォルトの名無しさん (アウアウカー Sad3-N0IE)
2019/06/07(金) 22:36:39.33ID:0dWbT8qma815デフォルトの名無しさん (ワッチョイ 77f2-to8s)
2019/06/07(金) 22:42:11.06ID:xj9RlcCA0 0が偽なのにnoerrというイカれた慣習はどうして生まれたんだろうねぇ。
816デフォルトの名無しさん (アークセー Sx6f-gnfa)
2019/06/07(金) 22:58:47.67ID:DaiiMVNnx 最初に誕生した OS、system/360 の JCLでも、正常は 0、警告が 4だったか 8だったかで、異常が 8だったか 16だったかだったな
z/OSでも同じだろうけど
知らんけど
z/OSでも同じだろうけど
知らんけど
817デフォルトの名無しさん (ワッチョイ 8763-FAmt)
2019/06/07(金) 23:33:27.02ID:sehGKr170 幸福な戻り値はどれも似たものだが、不幸な戻り値はいずれもそれぞれに不幸なものである。
818デフォルトの名無しさん (ワッチョイ 9701-LJAA)
2019/06/07(金) 23:33:41.86ID:nzmV+Edn0 if (error == 0)
で違和感ないじゃん
で違和感ないじゃん
819デフォルトの名無しさん (ワッチョイ e1f6-to8s)
2019/06/08(土) 03:30:43.12ID:KzIynz9K0 0 informational
1 warning
2 error
3 severe
4 critical
1 warning
2 error
3 severe
4 critical
820デフォルトの名無しさん (ワッチョイ 417b-sn8J)
2019/06/08(土) 11:21:36.15ID:5iouJYEP0 返り値0でエラーなしはUNIXのコマンド終了ステータス以来の慣習かな。
「正常終了」は状態が1種類しかないけど、失敗は「どう失敗したか」で
複数の状態があるから、正常で0、他の値はエラーコードってのは便利でしょ。
論理演算子の結果で true false の1と0は、論理学の数値表現を
プログラム言語にそのまま写しこんだからじゃないかと。
関数は一般にエラー状態を返り値で返す、と思っていれば
正常 == 返り値0 == false は違和感ないかと。
このルールから外れてるのは「失敗時にNULLを返す」タイプの関数で、
結構たくさん存在するのが困ったところだけど。
「正常終了」は状態が1種類しかないけど、失敗は「どう失敗したか」で
複数の状態があるから、正常で0、他の値はエラーコードってのは便利でしょ。
論理演算子の結果で true false の1と0は、論理学の数値表現を
プログラム言語にそのまま写しこんだからじゃないかと。
関数は一般にエラー状態を返り値で返す、と思っていれば
正常 == 返り値0 == false は違和感ないかと。
このルールから外れてるのは「失敗時にNULLを返す」タイプの関数で、
結構たくさん存在するのが困ったところだけど。
821デフォルトの名無しさん (ワッチョイ c379-uQfi)
2019/06/08(土) 11:32:28.80ID:7CBKOF2N0 Cでは同一のもとして動かせてしまうが
そもそもエラーコードとboolを同一視してる時点で論外なんだが
そもそもエラーコードとboolを同一視してる時点で論外なんだが
822デフォルトの名無しさん (ワッチョイ 77f2-to8s)
2019/06/08(土) 11:38:57.76ID:WG7jlf5q0 論理型を別に設けずに整数型で代用してしまおうというアイデアはBやCの言語仕様をコンパクトに
抑えるのに役立ったが、今となってはプリプロセッサマクロと同じくらいの悪しき遺産だなぁ。
抑えるのに役立ったが、今となってはプリプロセッサマクロと同じくらいの悪しき遺産だなぁ。
823デフォルトの名無しさん (ワッチョイ e1f6-to8s)
2019/06/08(土) 14:58:06.03ID:KzIynz9K0 え、何か問題あるか?
824デフォルトの名無しさん (ラクペッ MM65-nBye)
2019/06/08(土) 15:35:48.39ID:X+3AMWAUM C99以降であれば_Bool型を使えばいいのでは?
825デフォルトの名無しさん (ワッチョイ e1f6-to8s)
2019/06/08(土) 15:41:42.45ID:KzIynz9K0 ダメだこりゃ
826デフォルトの名無しさん (ブーイモ MM5b-XTNn)
2019/06/08(土) 15:41:57.08ID:bm2ApAetM 正常時1で異常時0を返す関数が混ざってたり
正常時ポインタで異常時ヌルポ返す関数があったり
それらの関数の返り値を全部 if でチェックしててカオスだったことがあります
正常時ポインタで異常時ヌルポ返す関数があったり
それらの関数の返り値を全部 if でチェックしててカオスだったことがあります
827デフォルトの名無しさん (ワッチョイ e1f6-to8s)
2019/06/08(土) 15:56:39.68ID:KzIynz9K0 BOOLを返す関数が負数を返したかどうか調べにゃあかんやつとかな
828デフォルトの名無しさん (ワッチョイ 77f2-to8s)
2019/06/08(土) 16:38:04.87ID:WG7jlf5q0 ワインバーグの本にあったなあ。ドル紙幣はみんな同じ色、同じサイズで見分けがつきにくいけど、
それが常識だと思っている人は、一定の確率で間違えてしまうことも世界の法則で仕方のない
ことだと思っているとか。
それが常識だと思っている人は、一定の確率で間違えてしまうことも世界の法則で仕方のない
ことだと思っているとか。
829デフォルトの名無しさん (ワッチョイ 13f9-K3Ee)
2019/06/08(土) 17:13:44.27ID:auwh2hzj0830デフォルトの名無しさん (ワッチョイ 7b73-uQfi)
2019/06/08(土) 18:39:07.71ID:jm0tDZO60831デフォルトの名無しさん (ワッチョイ 9bd2-9700)
2019/06/08(土) 18:53:36.19ID:jXs/KV+s0 戻り地がboolのときはtrueが成功
intのときは0が成功なんだよ
intのときは0が成功なんだよ
832デフォルトの名無しさん (ワッチョイ 9701-LJAA)
2019/06/08(土) 19:39:01.75ID:ogfAGAzJ0 bool型ができたのはC99のときなので
833デフォルトの名無しさん (ワッチョイ 7b73-uQfi)
2019/06/08(土) 19:42:23.71ID:jm0tDZO60 boolぐらいなにもインクルードしなくても使わせてくれぽよ
834デフォルトの名無しさん (ワッチョイ 9701-LJAA)
2019/06/08(土) 19:54:54.89ID:ogfAGAzJ0 「歴史的理由」という奴
835デフォルトの名無しさん (アウアウウー Sa1d-I703)
2019/06/08(土) 21:28:56.66ID:gCLo3iIIa >>830
それのせいでPrelではシステムコールと同名の関数の返り値がいまいち統一取れてなかったりして、結局マニュアル見ながら個別に覚えざるを得なかったりする。
Perlはだいたいは1が成功でundefが失敗なんだけどね。(undefはCでのNULLみたいなもの。未定義を意味する。定義されてて値が0の時とは違うが、書き方によっては同じように扱えることもある)。
それのせいでPrelではシステムコールと同名の関数の返り値がいまいち統一取れてなかったりして、結局マニュアル見ながら個別に覚えざるを得なかったりする。
Perlはだいたいは1が成功でundefが失敗なんだけどね。(undefはCでのNULLみたいなもの。未定義を意味する。定義されてて値が0の時とは違うが、書き方によっては同じように扱えることもある)。
836デフォルトの名無しさん (アウアウエー Sa93-N0IE)
2019/06/08(土) 21:58:16.60ID:nbjDJ9kZa 今C++にあるoptionalだっけ?
あんな感じの有ってもいいな。かなりうざい感じになるから使わんか。
あんな感じの有ってもいいな。かなりうざい感じになるから使わんか。
837デフォルトの名無しさん (ワッチョイ c38c-LJAA)
2019/06/09(日) 11:06:53.62ID:42ARNGRn0 インクルードをURLで引っ張ってこれたら面白いのに。
838デフォルトの名無しさん (ワッチョイ cdab-BGv3)
2019/06/09(日) 11:17:01.45ID:ZHA7gcDF0 一発でウイルス仕込まれそう
839デフォルトの名無しさん (ワッチョイ ebb6-fbqF)
2019/06/09(日) 11:59:40.15ID:W83DJxDE0 コスパ最強の副業「動画編集」で稼ぐ方法【生ハム登場】
https://www.youtube.com/watch?v=0ogHVUKoa8k
【最強の副業】動画編集で稼ぎ続ける人の条件【未来予想】
https://www.youtube.com/watch?v=e-IA4ePHzOs
【おすすめ副業・在宅ワーク】「動画編集」は初心者でも時給1,500円狙えます。
https://www.youtube.com/watch?v=8gYAqdSsI98&t=168s
【与沢翼】動画編集素人でも本気でやれば個人で月収1000万も夢ではないですよ。
実は動画ってすぐプロと同じクオリティで作れちゃうし月収20万はすぐですよ
https://www.youtube.com/watch?v=ws55W45OLbE
センスのいい映像を短時間で編集する方法
https://www.youtube.com/watch?v=k0TT4Tbf_Ec
https://www.youtube.com/watch?v=0ogHVUKoa8k
【最強の副業】動画編集で稼ぎ続ける人の条件【未来予想】
https://www.youtube.com/watch?v=e-IA4ePHzOs
【おすすめ副業・在宅ワーク】「動画編集」は初心者でも時給1,500円狙えます。
https://www.youtube.com/watch?v=8gYAqdSsI98&t=168s
【与沢翼】動画編集素人でも本気でやれば個人で月収1000万も夢ではないですよ。
実は動画ってすぐプロと同じクオリティで作れちゃうし月収20万はすぐですよ
https://www.youtube.com/watch?v=ws55W45OLbE
センスのいい映像を短時間で編集する方法
https://www.youtube.com/watch?v=k0TT4Tbf_Ec
840デフォルトの名無しさん (ワッチョイ 5b02-EF/o)
2019/06/09(日) 14:38:56.62ID:zgQq0a060 >>837
/use/include ディレクトリをNFS マウントでもしとけ。
/use/include ディレクトリをNFS マウントでもしとけ。
841デフォルトの名無しさん (スプッッ Sddb-EU19)
2019/06/11(火) 14:18:29.61ID:suKt4vmPd すみません、質問があります。
環境はlinuxです。
ある共有ライブラリlibA.soをロードするプログラムbがあります。
このプログラムbをlibA.so抜きでgccでビルドすることはできるでしょうか?
もちろん実行時にはlibA.soは用意します。
環境はlinuxです。
ある共有ライブラリlibA.soをロードするプログラムbがあります。
このプログラムbをlibA.so抜きでgccでビルドすることはできるでしょうか?
もちろん実行時にはlibA.soは用意します。
842デフォルトの名無しさん (アウアウウー Sa1d-I703)
2019/06/11(火) 15:09:21.38ID:UmxJxqMia >>841
リンクされる関数やグローバル変数が全て揃ってれば誤魔化し効くのではないかな。
リンクされる関数やグローバル変数が全て揃ってれば誤魔化し効くのではないかな。
843デフォルトの名無しさん (アウアウエー Sa93-N0IE)
2019/06/11(火) 16:20:37.89ID:X43Szptna シンボルだけ定義したsoファイルを用意するのが普通ではないかと
844デフォルトの名無しさん (ワッチョイ 73a5-17Kf)
2019/06/11(火) 18:35:03.43ID:z8NS6dzQ0 ダミーファイルを用意とか、かっけえな
845デフォルトの名無しさん (アウアウウー Sa1d-I703)
2019/06/11(火) 20:38:50.54ID:UmxJxqMia そ、そうか?
846デフォルトの名無しさん (スプッッ Sddb-EU19)
2019/06/11(火) 21:26:50.36ID:suKt4vmPd ビルド用のsoファイルを用意する、でいこうと思います。ありがとうございました!
847デフォルトの名無しさん (アウアウカー Sad3-N0IE)
2019/06/11(火) 22:01:48.05ID:vnr40KfNa スタブってやつね。
dlopen使うと基本そうなると思う。
もともと自動的なシンボル解決してる場合は無視できたかも。
dlopen使うと基本そうなると思う。
もともと自動的なシンボル解決してる場合は無視できたかも。
848デフォルトの名無しさん (ワッチョイ 5b12-d1P0)
2019/06/12(水) 00:00:59.88ID:82Q6hISi0 >>847
お前は何を言ってるんだ
お前は何を言ってるんだ
849デフォルトの名無しさん (ワッチョイ 6b2c-MqbY)
2019/06/12(水) 02:05:00.40ID:vWkgJgOw0 たぶん、DLL import, export みたいな定義ファイルさえあれば、コンパイルできるだろ?
850デフォルトの名無しさん (アウアウウー Sa1d-I703)
2019/06/12(水) 09:25:53.48ID:apqCeTcNa DLL? Windowsだとそうなの?
851デフォルトの名無しさん (ワッチョイ d769-0JeU)
2019/06/12(水) 10:40:58.95ID:QpFBULjO0 a) dll import キーワードつきのヘッダでコンパイル
DLLを読み込みシンボル解決する .lib をリンク
実行時には dll 読み込みをやってくれる (無いと文句言う)
b) 自前で DLL読み込んで GetProcAddress で関ポにセットして、
その関ポを呼び出すラップ関数を用意
自前ロードしてるので、実行時に無い時別の処理の記述が可能になるん
DLLを読み込みシンボル解決する .lib をリンク
実行時には dll 読み込みをやってくれる (無いと文句言う)
b) 自前で DLL読み込んで GetProcAddress で関ポにセットして、
その関ポを呼び出すラップ関数を用意
自前ロードしてるので、実行時に無い時別の処理の記述が可能になるん
852デフォルトの名無しさん (スフッ Sdba-58Oz)
2019/06/13(木) 13:22:19.29ID:tXoihok+d 大学でc言語を学び始めました
ポインタが意味不明でした
何がわからないのかわからない
ポインタが意味不明でした
何がわからないのかわからない
853デフォルトの名無しさん (アークセー Sxbb-6CEg)
2019/06/13(木) 13:54:13.91ID:wTJRUi3Ix メモリとアドレスの概念が分かってないからじゃね?
854デフォルトの名無しさん (ワッチョイ 03dc-9ye8)
2019/06/13(木) 19:07:04.64ID:mXxRrk+K0 現実世界にポインタと同じものを説明する概念がないから簡単な説明のしようがないんだよなぁ。住所録とか余計こんがらがるし。
素直に本を沢山読んでプログラムを組んで慣れるしか無い
素直に本を沢山読んでプログラムを組んで慣れるしか無い
855デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/13(木) 19:27:38.29ID:HQZYLHkVa 本にページ数がない世界?
856デフォルトの名無しさん (ワッチョイ 677d-58Oz)
2019/06/13(木) 20:56:34.51ID:8abVSTNa0 アドレスは&つけてprintfした時に出てくるやつでしょ?
箱のラベルみたいなのだとかなんとか言われた気がする
メモリは単純に容量?
別関数で計算した値をmain関数に持ってくる時にポインタを使えばreturnがいらないだとかコピーじゃなくて直接数値を変えるから処理が楽だとか書いてあるけど結局普通に代入するのに比べて利点がよくわからない
箱のラベルみたいなのだとかなんとか言われた気がする
メモリは単純に容量?
別関数で計算した値をmain関数に持ってくる時にポインタを使えばreturnがいらないだとかコピーじゃなくて直接数値を変えるから処理が楽だとか書いてあるけど結局普通に代入するのに比べて利点がよくわからない
857デフォルトの名無しさん (ワッチョイ f3ab-HbHi)
2019/06/13(木) 21:10:17.33ID:mvKDv9Bs0 タワーマンション
858デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/13(木) 21:10:41.15ID:HQZYLHkVa 何かの容量と言ったときの「何か」がメモリです。
利点は基本的にないです。
利点は基本的にないです。
859デフォルトの名無しさん (ワッチョイ 1aad-LWjD)
2019/06/13(木) 21:22:11.61ID:0e3y3dPM0 データが存在する場所
860デフォルトの名無しさん (ブーイモ MM7f-4ioR)
2019/06/13(木) 21:44:19.75ID:VQ1VjdQ1M みんな思い思いのモデルで遊んでるから、パパは箱モデル出しちゃうぞ
861デフォルトの名無しさん (ワッチョイ 3352-9ye8)
2019/06/13(木) 21:45:29.38ID:vVgcrwZV0 うさみみハリケーンでメモリ覗いてチートしよう!
862デフォルトの名無しさん (ワッチョイ 4e63-9ye8)
2019/06/13(木) 21:52:15.32ID:o6WQvi940 天使のような微笑みに
時は立ち止まる
時は立ち止まる
863デフォルトの名無しさん (ワッチョイ 03dc-9ye8)
2019/06/13(木) 22:05:37.40ID:mXxRrk+K0 なんか分からない部分のコード示してもらわないと
ここの有能な人たちもどう説明したらいいか分かんないから雑談始まったがw
ここの有能な人たちもどう説明したらいいか分かんないから雑談始まったがw
864蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8b01-1i7F)
2019/06/13(木) 22:14:30.76ID:wtG0GGqp0 1ビットが0か1かの二通りを表せる情報量。
1バイトは0〜255までの256通り(2の8乗)を表せる情報量で8ビットに等しい。
1バイトを複数並べたのがメモリーで、各バイトの位置がアドレス。
1バイトは0〜255までの256通り(2の8乗)を表せる情報量で8ビットに等しい。
1バイトを複数並べたのがメモリーで、各バイトの位置がアドレス。
865デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/13(木) 22:16:01.81ID:dMX2AWSU0 このスレにエスパーいるの?
866蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8b01-1i7F)
2019/06/13(木) 22:22:12.70ID:wtG0GGqp0 アドレスに型情報を加えて、先頭アドレスを起点として配列のようにアクセス可能にしたものがポインタ。
しかし、配列は実体を要求するが、ポインタは実体を要求しない。ヌルポインタは、何も指し示さないポインタ。
しかし、配列は実体を要求するが、ポインタは実体を要求しない。ヌルポインタは、何も指し示さないポインタ。
867デフォルトの名無しさん (ワッチョイ 4e63-9ye8)
2019/06/13(木) 22:29:06.28ID:o6WQvi940 ポインタ配列ってやると実体のない配列になるのかなw
868デフォルトの名無しさん (ワッチョイ 5bda-Fbrg)
2019/06/14(金) 00:57:04.32ID:v+vUDnm40 ポインタ配列?
ポインタの配列 *array[]
配列のポインタ (*array)[]
ポインタの配列 *array[]
配列のポインタ (*array)[]
869デフォルトの名無しさん (ワッチョイ a37b-RuXw)
2019/06/14(金) 06:12:05.65ID:hJXFGwRg0 “メモリ”って言葉がフラッシュメモリのような、
ストレージデバイスのイメージになってるのも
説明を難しくしてる要因かもしれないね。
メモリは記憶単位ごとに数字で番地が振られていて…と言っても、
「メモリってディレクトリ構造中のファイルとして記憶するんじゃないの?」
みたいな感じに、互いの言葉の意味がチグハグで。
ストレージデバイスのイメージになってるのも
説明を難しくしてる要因かもしれないね。
メモリは記憶単位ごとに数字で番地が振られていて…と言っても、
「メモリってディレクトリ構造中のファイルとして記憶するんじゃないの?」
みたいな感じに、互いの言葉の意味がチグハグで。
870デフォルトの名無しさん (ワッチョイ 3352-9ye8)
2019/06/14(金) 06:41:21.97ID:f7k/n5Cq0 RAMとROMの違いなんて今の時代説明しても分かる人の方が少ない気がする
871デフォルトの名無しさん (ラクペッ MM73-WxcC)
2019/06/14(金) 07:27:48.00ID:Q6PAXFreM >メモリは記憶単位ごとに数字で番地が振られていて
キャッシュメモリ「せやろか?」
キャッシュメモリ「せやろか?」
872デフォルトの名無しさん (ワッチョイ 1aa5-Rc2r)
2019/06/14(金) 07:30:51.51ID:0tg6L2nj0873デフォルトの名無しさん (アークセー Sxbb-6CEg)
2019/06/14(金) 08:11:51.98ID:9CL7rguOx >>872
磁気コアメモリと、右側はRAMACか?
磁気コアメモリと、右側はRAMACか?
874デフォルトの名無しさん (ブーイモ MM7f-4ioR)
2019/06/14(金) 08:31:34.65ID:0nKPup2VM 磁気ドラムだよ
ランダムアクセスでさえないのにメインメモリにしたとかいう
ランダムアクセスでさえないのにメインメモリにしたとかいう
875デフォルトの名無しさん (ワッチョイ 9712-LWbF)
2019/06/14(金) 09:02:07.63ID:vN7LRDhO0 >>856
ポインタ=君と感覚を共有してる全く同性能の影分身だ。
君の価値が100万なら、影分身は1円で作れる。
ポインタのメリットは会社が君を働かせたい時、君を直接雇うと100万円かかるが、影分身を雇うと1円で済むわけだ。
影分身が働いてる間、君は家でエロゲでもしてればいい。
気をつけないといけないのは、仕事中、影分身の腕が切断されたら、エロゲやってる君の腕も切断されるし
影分身が死んだら君も死ぬ。
これ以上わかりやすい説明はないと思うが、どうよ?w
ポインタ=君と感覚を共有してる全く同性能の影分身だ。
君の価値が100万なら、影分身は1円で作れる。
ポインタのメリットは会社が君を働かせたい時、君を直接雇うと100万円かかるが、影分身を雇うと1円で済むわけだ。
影分身が働いてる間、君は家でエロゲでもしてればいい。
気をつけないといけないのは、仕事中、影分身の腕が切断されたら、エロゲやってる君の腕も切断されるし
影分身が死んだら君も死ぬ。
これ以上わかりやすい説明はないと思うが、どうよ?w
876デフォルトの名無しさん (ワッチョイ 4e69-oJPG)
2019/06/14(金) 09:44:07.68ID:y8r4DOsw0 例えられても伝わらないとさらに混乱させるのが、ポインタと配列周辺の話
877デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/14(金) 10:03:42.87ID:+nXqXsIga878デフォルトの名無しさん (ワッチョイ 03dc-9ye8)
2019/06/14(金) 10:26:13.82ID:6se/aPBa0 このように、どうわかりやすく書こうとしてもどっかに不都合が生じるのがポインタの説明
素直にコンピュータの仕組みを勉強するしかないんや・・・
素直にコンピュータの仕組みを勉強するしかないんや・・・
879デフォルトの名無しさん (アークセー Sxbb-6CEg)
2019/06/14(金) 10:36:21.57ID:9CL7rguOx ポインタはWindowsのショートカットみたいなもの。
これでもまだ誤解されそうね。
これでもまだ誤解されそうね。
880デフォルトの名無しさん (ワッチョイ 4e63-9ye8)
2019/06/14(金) 11:45:14.96ID:suWeiIcg0 インデックスレジスタを拡張したもの
881デフォルトの名無しさん (スプッッ Sd5a-PP33)
2019/06/14(金) 12:26:01.65ID:2kFHhEHgd キャッシュとバッファの違いを教えてください
882蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-1i7F)
2019/06/14(金) 12:32:55.71ID:lQGpZUNAd キャッシュは次回のアクセスを高速化するためにデータを一時的に保存しておくこと。
バッファはデータを受け止めるために、保存場所を確保するためのメモリー領域。
バッファはデータを受け止めるために、保存場所を確保するためのメモリー領域。
883デフォルトの名無しさん (ワッチョイ dfd2-vI2o)
2019/06/14(金) 14:56:26.65ID:6Rxhp4270 アセンブラやらせてみる。
884デフォルトの名無しさん (ワッチョイ 9a01-zlGV)
2019/06/14(金) 15:05:09.54ID:AQvHkPsD0885デフォルトの名無しさん (バッミングク MM8a-U99L)
2019/06/14(金) 17:36:32.38ID:TPMloxQtM >>875
本体がパンツ下ろしたら影分身も職場でパンツ下ろすんですね分かります
本体がパンツ下ろしたら影分身も職場でパンツ下ろすんですね分かります
886デフォルトの名無しさん (ワッチョイ 8b01-2qry)
2019/06/14(金) 17:45:59.79ID:zWOLB0k60 ポインタがよくわからないんだけど、普通にメモリアドレス==ポインタって認識なの?
int i;
int *p=&i;
の時に変数iのポインタであるpっていういい方は正しいですか
int i;
int *p=&i;
の時に変数iのポインタであるpっていういい方は正しいですか
887デフォルトの名無しさん (ワッチョイ 3352-9ye8)
2019/06/14(金) 17:52:24.52ID:f7k/n5Cq0 メモリアドレスは格納されるけど
メモリアドレス==ポインタっていうのは違う気がする
nullだのvoidだのもあるし
メモリアドレス==ポインタっていうのは違う気がする
nullだのvoidだのもあるし
888デフォルトの名無しさん (アウアウカー Sac3-H7EU)
2019/06/14(金) 17:58:41.54ID:Soq0+PVxa iのポインタを格納してるポインタ変数p
値自体を問題にするときはアドレスだが、プログラム中で操作の対象となってる場合はポインタって感じだな。
値自体を問題にするときはアドレスだが、プログラム中で操作の対象となってる場合はポインタって感じだな。
889デフォルトの名無しさん (ワッチョイ 4e7b-r4R3)
2019/06/14(金) 18:21:37.60ID:Js4PARtC0890デフォルトの名無しさん (ワッチョイ 8b01-2qry)
2019/06/14(金) 18:23:47.92ID:zWOLB0k60 なるほど、なんとなくわかったありがとう。混乱の原因はポインタっていう言葉がいろんな使われ方してるからだった。
891デフォルトの名無しさん (アウアウウー Sac7-6CEg)
2019/06/14(金) 18:25:31.19ID:Kaq8zorwa こう書くとまた荒れそうだが、ポインターとはアドレスが入った変数である、というのは正しい。
NULLは0番地を特別扱いしてるだけだし、void *もあくまでアドレスだ。
NULLは0番地を特別扱いしてるだけだし、void *もあくまでアドレスだ。
892デフォルトの名無しさん (ドコグロ MM92-zlGV)
2019/06/14(金) 18:32:50.01ID:N06YB3IUM >>887
nullはまだしもvoidは関係なくね?
nullはまだしもvoidは関係なくね?
893デフォルトの名無しさん (ワッチョイ 4e7b-r4R3)
2019/06/14(金) 18:34:58.75ID:Js4PARtC0 荒れる要素なくない?
メモリアドレスを保持する整数と型を組合せてあるだけだし
void*はアドレス保持するだけの変数って意味じゃないの
メモリアドレスを保持する整数と型を組合せてあるだけだし
void*はアドレス保持するだけの変数って意味じゃないの
894デフォルトの名無しさん (ワッチョイ 0301-oJPG)
2019/06/14(金) 18:35:21.76ID:6z9b86iK0 void *p;
p++ を許すのは GCC拡張だっけか
p++ を許すのは GCC拡張だっけか
895デフォルトの名無しさん (ワッチョイ 9a01-zlGV)
2019/06/14(金) 18:37:46.52ID:AQvHkPsD0896デフォルトの名無しさん (アウアウウー Sac7-LNjH)
2019/06/14(金) 18:39:36.73ID:BA+tS0rQa >>891
NULLの件はそれ逆だろう。
実際の0番地を特別扱いにしているのではなく、「どこも指さない特殊なアドレス」を表記するために整数0を使用しているだけで、0番地が特別な訳ではないはず。まあ実際にメモリ割り当てで0番地を割り当てることはしないだろうけど。
void*も、型を指定しないポインタを表すのに使っている型の指定であり、アドレスというのはおかしい。
NULLの件はそれ逆だろう。
実際の0番地を特別扱いにしているのではなく、「どこも指さない特殊なアドレス」を表記するために整数0を使用しているだけで、0番地が特別な訳ではないはず。まあ実際にメモリ割り当てで0番地を割り当てることはしないだろうけど。
void*も、型を指定しないポインタを表すのに使っている型の指定であり、アドレスというのはおかしい。
897デフォルトの名無しさん (ワッチョイ 4e7b-r4R3)
2019/06/14(金) 18:45:34.86ID:Js4PARtC0 >>894
サイズどういう扱いなのそれ
サイズどういう扱いなのそれ
898デフォルトの名無しさん (ワッチョイ 0301-oJPG)
2019/06/14(金) 18:48:29.67ID:6z9b86iK0 >>897
確かポインタ演算時は1バイト (char) 扱いだったかな?
確かポインタ演算時は1バイト (char) 扱いだったかな?
899デフォルトの名無しさん (ワッチョイ 4e7b-r4R3)
2019/06/14(金) 18:52:58.09ID:Js4PARtC0 1バイトなんか
まあそりゃそうか
まあそりゃそうか
900デフォルトの名無しさん (ワッチョイ 9af9-vI2o)
2019/06/14(金) 21:41:25.35ID:WbpzR08B0 void*なんていらなくね?char*でいいじゃん
構造のわからないものは「バイト列」って意識でしょ?
構造のわからないものは「バイト列」って意識でしょ?
901蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8b01-1i7F)
2019/06/14(金) 21:47:11.03ID:Qn7Uv1x90 >>900
void *がないとmemcpyに引数を渡すとき面倒。
void *がないとmemcpyに引数を渡すとき面倒。
902デフォルトの名無しさん (ワッチョイ 0301-oJPG)
2019/06/14(金) 21:51:26.70ID:6z9b86iK0 double * には double * だけを許し char * や strucut foo * を渡したらアカンと
要求される型を厳しくチェックしようとすると
「ポインタだったら実体の型は何でもいい」 という指示を char * に含ますわけにはいかない
要求される型を厳しくチェックしようとすると
「ポインタだったら実体の型は何でもいい」 という指示を char * に含ますわけにはいかない
903デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/14(金) 21:52:14.30ID:sIZagWQx0 汎用ポインタがchar*型になってたらコードレビューは絶対に通さないわ
904デフォルトの名無しさん (ワッチョイ 03dc-9ye8)
2019/06/14(金) 22:42:50.69ID:6se/aPBa0 汎用ポインタというかvoid型という概念そのものが嫌い。
全てを厳密にやれ。言語を作る時点でまず関数に戻り値を強制すべきだったんだ。
ポインタわからん軍の原因はvoid型とかいう曖昧なせいなのがあるせいなのも一理あろうて。
全てを厳密にやれ。言語を作る時点でまず関数に戻り値を強制すべきだったんだ。
ポインタわからん軍の原因はvoid型とかいう曖昧なせいなのがあるせいなのも一理あろうて。
905デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/14(金) 23:06:06.10ID:sIZagWQx0 >>904
関数型言語に行ってらっしゃい
関数型言語に行ってらっしゃい
906デフォルトの名無しさん (ワッチョイ 7602-byPh)
2019/06/15(土) 00:02:16.99ID:n7CfuAo60 Kotlin もよろしく
907デフォルトの名無しさん (ワッチョイ 5b8f-X/yd)
2019/06/15(土) 01:25:34.80ID:RN+u9pJY0 windowsにおいて
setLocale(LC_ALL, "en_US.UTF-8");
が成功する環境と失敗する環境があるのですが何が原因かわかりません。。何かご存じの方いらっしゃらないでしょうか?
setLocale(LC_ALL, "en_US.UTF-8");
が成功する環境と失敗する環境があるのですが何が原因かわかりません。。何かご存じの方いらっしゃらないでしょうか?
908デフォルトの名無しさん (ワッチョイ 9a01-zlGV)
2019/06/15(土) 09:25:25.61ID:oZ4xCIwS0909デフォルトの名無しさん (ワッチョイ dfd2-vI2o)
2019/06/15(土) 09:37:31.78ID:pAE5sudp0 「俺の考える最強に分かりやすいポインタの説明」
・・・無理
・・・無理
910デフォルトの名無しさん (ワッチョイ 5ac5-YCmz)
2019/06/15(土) 10:05:45.19ID:QD7Sd0bs0 >>907
OSは?両方ともWindows10?
OSは?両方ともWindows10?
911デフォルトの名無しさん (ワッチョイ 1aa5-Rc2r)
2019/06/15(土) 10:23:13.60ID:T0BSudQv0 >>908 void君だろ
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/37
37 名前:デフォルトの名無しさん (ワッチョイ f94f-yqSl)[sage] 投稿日:2018/09/22(土) 01:42:06.64 ID:16ZpsTnK0
>>36
マジでIDE使え。
そして貼るときはlanguageをCにしとけ。シンタックスハイライトが変わるから。
で、どれが分からんの?
> enter
> find
> delete
> show_all
> delete_all
mainはこの際分からなくていい。
最初に理解しないといけないのは show_all だ。
ただし細かいことを言ってもキリがないが、
> void show_all(void)
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。
マジな話、このソースのレベルの本なら捨てた方がいい。
俺は大学の教材がいいと思うぞ。
(読んでないが)リストならググったら東工大とか出てきた。
http://www.is.titech.ac.jp/compview/clang/chap11.html
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/37
37 名前:デフォルトの名無しさん (ワッチョイ f94f-yqSl)[sage] 投稿日:2018/09/22(土) 01:42:06.64 ID:16ZpsTnK0
>>36
マジでIDE使え。
そして貼るときはlanguageをCにしとけ。シンタックスハイライトが変わるから。
で、どれが分からんの?
> enter
> find
> delete
> show_all
> delete_all
mainはこの際分からなくていい。
最初に理解しないといけないのは show_all だ。
ただし細かいことを言ってもキリがないが、
> void show_all(void)
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。
マジな話、このソースのレベルの本なら捨てた方がいい。
俺は大学の教材がいいと思うぞ。
(読んでないが)リストならググったら東工大とか出てきた。
http://www.is.titech.ac.jp/compview/clang/chap11.html
912デフォルトの名無しさん (ワッチョイ ba52-LNjH)
2019/06/15(土) 11:55:35.29ID:hahimQeS0 懐かしいな、void君
913デフォルトの名無しさん (ワッチョイ 5b8f-X/yd)
2019/06/15(土) 13:59:23.10ID:RN+u9pJY0 >>910
コメントありがとうございます。
8と10で成功する端末があることを確認しています。失敗する端末は今のところ10だけです。
そして
SetConsoleOutputCP(65001);
を使用することで失敗する端末でもUTF-8をコンソールに表示でき、一応目的は達成できました。
調べてみると、結局のところwindowsではsetlocaleで2バイト以上文字は設定できないとのことだったのですが、ではなぜ成功する端末があるのか……
コメントありがとうございます。
8と10で成功する端末があることを確認しています。失敗する端末は今のところ10だけです。
そして
SetConsoleOutputCP(65001);
を使用することで失敗する端末でもUTF-8をコンソールに表示でき、一応目的は達成できました。
調べてみると、結局のところwindowsではsetlocaleで2バイト以上文字は設定できないとのことだったのですが、ではなぜ成功する端末があるのか……
914デフォルトの名無しさん (ワッチョイ 5a73-YCmz)
2019/06/15(土) 15:49:06.56ID:fUxHfD4R0 謎だな
915デフォルトの名無しさん (ワッチョイ f3ab-HbHi)
2019/06/15(土) 16:57:06.86ID:RWV4c9qt0 引数voidって古いシステムの保守でたまに見るな
916デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/15(土) 16:59:05.33ID:5ne/m9/q0 と、古いシステムの保守なんかやったことねえやつがぬかすか
917デフォルトの名無しさん (ワッチョイ 8b01-9ye8)
2019/06/15(土) 18:17:17.87ID:ulIUfSMj0 引数voidは今でも普通に使うけどな
918デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/15(土) 18:22:29.22ID:5ne/m9/q0 void show_all(); なんて書くやつ見かけたらなるべく距離を置く
>>918
C++ ではそれは当たり前ですが…
C++ ではそれは当たり前ですが…
920デフォルトの名無しさん (ラクペッ MM73-WxcC)
2019/06/15(土) 18:42:04.96ID:fAAVk5UIM921デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/15(土) 18:46:57.27ID:5ne/m9/q0 おまえからも距離を置きたいぜ
ここをどこだと思っている
C++なら無問題などと言わねばわからぬ者がいるとでも思っているのか
ここをどこだと思っている
C++なら無問題などと言わねばわからぬ者がいるとでも思っているのか
922デフォルトの名無しさん (ワッチョイ a3e8-AFaF)
2019/06/15(土) 22:30:32.42ID:BY4KYcRQ0 とりあえず、シングルステートでも返り値をboolにする俺がやってきましたよ。
923デフォルトの名無しさん (アウアウウー Sac7-jjx2)
2019/06/16(日) 02:14:21.54ID:wRD2pOBha ケースバイケースで使い分ける
924デフォルトの名無しさん (ラクペッ MM73-WxcC)
2019/06/16(日) 08:10:06.75ID:ORkp7ynDM925デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/16(日) 10:35:26.32ID:jvyHVZd00926デフォルトの名無しさん (ワッチョイ 4e63-9ye8)
2019/06/16(日) 11:22:43.26ID:RqGVrKm70 大丈夫だよ
ここを見ながらシステム作っている奴はいないから
ここを見ながらシステム作っている奴はいないから
927デフォルトの名無しさん (ワッチョイ 5ac5-YCmz)
2019/06/16(日) 13:20:19.90ID:X7GbKeYn0 Cはvoid省略すると可変長引数扱いになるんじゃなかったっけ?
C++は省略してもvoidだけど
C++は省略してもvoidだけど
929デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/16(日) 13:51:25.10ID:Mp4zqsM90 >>928
破壊的変更が行われた仕様が回避できるなら回避すべきだな
破壊的変更が行われた仕様が回避できるなら回避すべきだな
930デフォルトの名無しさん (ワッチョイ 9a33-vI2o)
2019/06/16(日) 13:58:56.49ID:VBKycPxl0 >>928
記憶違いでしょ。変わってないよ。違うと言うなら出典確認してから来てね。
http://kikakurui.com/x3/X3010-2003-01.html#93
> ...関数定義の一部でない関数宣言子の識別子並びが
> 空の場合,仮引数の個数及び型の情報がないことを指定する。
記憶違いでしょ。変わってないよ。違うと言うなら出典確認してから来てね。
http://kikakurui.com/x3/X3010-2003-01.html#93
> ...関数定義の一部でない関数宣言子の識別子並びが
> 空の場合,仮引数の個数及び型の情報がないことを指定する。
931デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/16(日) 15:14:33.98ID:+bML8jLFa932デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/16(日) 15:41:14.25ID:rIa5AgZza 入力がない関数ってのは関数ではないな
933デフォルトの名無しさん (ワッチョイ 1aa5-Rc2r)
2019/06/16(日) 15:51:28.54ID:eI7bdJXk0 >なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
こんな汚物が上から目線で何かもの言ってるかと思うと反吐が出る
さっさと消えてほしい
こんな汚物が上から目線で何かもの言ってるかと思うと反吐が出る
さっさと消えてほしい
934デフォルトの名無しさん (ワッチョイ 9a01-zlGV)
2019/06/16(日) 16:33:52.45ID:wZzXbGgB0 >>932
なぜ入力がないと思ったんだ?
なぜ入力がないと思ったんだ?
935デフォルトの名無しさん (ワッチョイ a37b-RuXw)
2019/06/16(日) 16:48:40.62ID:xMbXVdd30 DCL20-C. 引数を受け付けない関数の場合も必ず void を指定する
ttps://www.jpcert.or.jp/sc-rules/c-dcl20-c.html
を見ると(かなり読み解きにくいんだけど)…
プロトタイプ宣言では
int func(void); ... 引数0個
int func(); ... 関数呼び出しでの引数の整合をチェックしない
関数定義では
int func(void) {...} ... 引数0個
int func() {...} ... 引数0個
って具合に func() の解釈が一貫していない、
だから引数0個の関数は同じ形になるようにvoidをつけましょう、
という話に思える。
この辺が議論の混乱を生んでるんじゃないかな。
ついでに関数定義の int func() {...} の形式は廃止予定とも出てる。
プロトタイプの方は廃止予定ではない、ってことかな。
ttps://www.jpcert.or.jp/sc-rules/c-dcl20-c.html
を見ると(かなり読み解きにくいんだけど)…
プロトタイプ宣言では
int func(void); ... 引数0個
int func(); ... 関数呼び出しでの引数の整合をチェックしない
関数定義では
int func(void) {...} ... 引数0個
int func() {...} ... 引数0個
って具合に func() の解釈が一貫していない、
だから引数0個の関数は同じ形になるようにvoidをつけましょう、
という話に思える。
この辺が議論の混乱を生んでるんじゃないかな。
ついでに関数定義の int func() {...} の形式は廃止予定とも出てる。
プロトタイプの方は廃止予定ではない、ってことかな。
936デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/16(日) 17:08:16.47ID:jvyHVZd00 そこでjpcertを持ち出すのは興醒めだ
どっかの馬の骨が「こうすべき」と主張してるってだけな話は
現実のマシンの動きとそれ束縛しているiso/iec9899でどうなのかという話とは論点が違う
どっかの馬の骨が「こうすべき」と主張してるってだけな話は
現実のマシンの動きとそれ束縛しているiso/iec9899でどうなのかという話とは論点が違う
937935 (ワッチョイ a37b-RuXw)
2019/06/16(日) 17:32:48.77ID:xMbXVdd30938デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/16(日) 19:00:02.87ID:jvyHVZd00 必要ねえじゃん
iso/iec9899の条文を引用して
その箇所がどのように解釈できると
自分の言葉で言えばいいのを
虎の威を借る形でサボる怠慢を
読まされる側は付き合ってらんねー
iso/iec9899の条文を引用して
その箇所がどのように解釈できると
自分の言葉で言えばいいのを
虎の威を借る形でサボる怠慢を
読まされる側は付き合ってらんねー
939デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/16(日) 19:52:17.11ID:5fyh92Dva >>932
そうだね。関数ではないね。しかしCだと処理をまとめる方法が関数しかないから仕方がないね。
そうだね。関数ではないね。しかしCだと処理をまとめる方法が関数しかないから仕方がないね。
940デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/16(日) 20:02:46.68ID:5fyh92Dva まあしかし getchar() みたいにプログラムとは無関係な所から取ってきた値を返すとか、バッファやstatic変数で外部からアクセスできない変数の内容を返すみたいな処理は必要だから引数なしも必要だ。
グローバル変数やハードウエアの初期化処理だけまとめて書きたいなんて時にも使える。
グローバル変数やハードウエアの初期化処理だけまとめて書きたいなんて時にも使える。
941デフォルトの名無しさん (スップ Sd5a-X/yd)
2019/06/16(日) 20:22:18.78ID:6QFVwEqYd ○○Initialize()
的な関数の存在に違和感ないんだが
的な関数の存在に違和感ないんだが
942デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/16(日) 20:26:17.96ID:rIa5AgZza クラスのメンバーの操作だとしても、だったらそのクラスのコンテキストを渡すのが正しいだろうとは思うけどね。
現実としてはまあ規模による。
現実としてはまあ規模による。
943デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/16(日) 20:40:48.32ID:Mp4zqsM90 プログラムの関数は数学の関数とは微妙に違うから仕方ない
仕方ないと思えない奴らが関数型言語を作った
兎に角Cでは本来の関数に制限するのは事実上不可能
仕方ないと思えない奴らが関数型言語を作った
兎に角Cでは本来の関数に制限するのは事実上不可能
944デフォルトの名無しさん (ワッチョイ 6301-6CEg)
2019/06/16(日) 20:47:50.76ID:EhqtZL1+0 functionって関数の他に機能って意味もあるけど、英語圏の人はどちらの意味で使ってるんだろうね?
>>944
多分語義をわざわざ意識していないと思われ
多分語義をわざわざ意識していないと思われ
946デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/16(日) 21:19:48.09ID:paRCIAHRa >>942
オブジェクト指向言語のクラスだとプロパティでゲッターやセッター作る事があるが、ゲッターは普通は引数なしだな。
で、そういう言語ではだいたいはメソッドの引数なしで ()にしとけばC言語での(void)と同じ意味になる。
オブジェクト指向言語のクラスだとプロパティでゲッターやセッター作る事があるが、ゲッターは普通は引数なしだな。
で、そういう言語ではだいたいはメソッドの引数なしで ()にしとけばC言語での(void)と同じ意味になる。
947蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8b01-1i7F)
2019/06/16(日) 21:39:10.07ID:KLVL0nwc0 機能という意味で言いたいときは、functionalityという単語もある。
948デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/16(日) 22:26:00.96ID:rIa5AgZza ゲッターセッター自体が、本当にそれ要るのかって思うこと多いよ。
手元にインスタンス持ってるわけだしさ。
手元にインスタンス持ってるわけだしさ。
949デフォルトの名無しさん (ラクペッ MM73-WxcC)
2019/06/16(日) 23:14:47.03ID:2lhSAUjOM ゲッターセッターはインスタンス変数を隠蔽化することでインスタンス間の結合強度を下げるのが目的
なんでもなんでもインスタンス内部の構造に直接アクセスするとOOPの意味がない
なんでもなんでもインスタンス内部の構造に直接アクセスするとOOPの意味がない
950デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/16(日) 23:22:32.20ID:rIa5AgZza いや、ゲッター使うんだったら隠蔽できてないじゃん。
951デフォルトの名無しさん (ワッチョイ 5b8f-X/yd)
2019/06/16(日) 23:34:39.49ID:Fv7+hlk/0 昔ゲッターセッターってスレッドセーフにするための仕組みだと思ってた。
それくらいしか意味が思いつかなかった…
それくらいしか意味が思いつかなかった…
952デフォルトの名無しさん (アウアウカー Sac3-H7EU)
2019/06/16(日) 23:43:48.77ID:3o8UCwiCa そうね、なんか前後に処理を入れるくらいの使い方はある。
でもそもそもその値を使う処理をそのクラスに持たせるのが隠蔽ということだね。
でもそもそもその値を使う処理をそのクラスに持たせるのが隠蔽ということだね。
953デフォルトの名無しさん (ワッチョイ 4e63-YCmz)
2019/06/16(日) 23:45:38.60ID:7nwjMCFt0 今の仕組み上での利点としては
GetterSetter作ることで
インターフェースに適合させれるようになる
Cは知らん
GetterSetter作ることで
インターフェースに適合させれるようになる
Cは知らん
954デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/17(月) 00:04:18.25ID:0K02i6cy0 Cのスレで言っても仕方ないが
オブジェクト指向においてクラス外からフィールドに直接アクセスするのは禁じ手だぞ
オブジェクト指向においてクラス外からフィールドに直接アクセスするのは禁じ手だぞ
955デフォルトの名無しさん (ワッチョイ 5a73-YCmz)
2019/06/17(月) 00:10:42.98ID:seiOMGnS0 getter/setterなんてうざいだけだぜ
メンバ変数直でいいじゃん
メンバ変数直でいいじゃん
956デフォルトの名無しさん (アウアウカー Sac3-H7EU)
2019/06/17(月) 00:23:14.51ID:YSrJE9j8a957デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/17(月) 00:26:17.86ID:0K02i6cy0 >>955
お前には一生オブジェクト指向は無理だな
お前には一生オブジェクト指向は無理だな
958デフォルトの名無しさん (アウアウカー Sac3-H7EU)
2019/06/17(月) 00:39:11.63ID:YSrJE9j8a まあ、ゲッター使うのはバカ。
データとメソッドを集約しないのはオブジェクト指向ではない。
ゲッターとセッターしかないオブジェクトなんて構造体で充分。
データとメソッドを集約しないのはオブジェクト指向ではない。
ゲッターとセッターしかないオブジェクトなんて構造体で充分。
959デフォルトの名無しさん (ワッチョイ 3352-9ye8)
2019/06/17(月) 01:11:23.59ID:J2deS77t0 たしかPythonだとgetterもsetterも推奨されてないんだっけ?
960デフォルトの名無しさん (ワッチョイ 7602-byPh)
2019/06/17(月) 02:13:20.34ID:BSqpudUb0 文字列クラスで文字数返すやつなんかはゲッターの一種だが、ああいうのは必用だよな。
文字数指定する事が出来るようにする場合もセッター必用だよな。
文字数指定する事が出来るようにする場合もセッター必用だよな。
961デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/17(月) 06:18:25.03ID:6C3tyyZH0 データメンバ直でもラッパーを挟めるなら問題なし
962デフォルトの名無しさん (ラクペッ MM73-WxcC)
2019/06/17(月) 07:27:38.45ID:yl5KJ/vEM 問題ないというよりも下手な設計をとりあえずカプセル化する時はラッパー被せて誤魔化すしかない
963デフォルトの名無しさん (ワッチョイ a3e8-AFaF)
2019/06/17(月) 08:27:04.42ID:ikLTlFyV0 ゲッタって仮想関数にする?
964デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 08:52:31.79ID:sn1adIo3a ラッパーって関数に対して被せるもんだろ?
メンバー変数のラッパーってなんだよ
メンバー変数のラッパーってなんだよ
965デフォルトの名無しさん (ワッチョイ 4e69-oJPG)
2019/06/17(月) 08:57:03.61ID:mR1b1vjg0 「メンバ書き換えたから更新よろしくな関数」の呼び出しで
やっと内部状態が変更するようなしくみ?
やっと内部状態が変更するようなしくみ?
966デフォルトの名無しさん (ワッチョイ 3e7c-YCmz)
2019/06/17(月) 09:09:34.98ID:8UjaS7YF0967デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 09:34:11.11ID:sn1adIo3a 真とかエンペラーとかいろいろあるしな
968デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/17(月) 12:37:41.39ID:WHxj8IY7a969デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 12:44:11.30ID:6pEy3XEna >>968
だから、何故値を取得する必要があるのかと
だから、何故値を取得する必要があるのかと
970デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/17(月) 13:06:30.69ID:0K02i6cy0 値を取得する必要ガーとか馬鹿なのか?
主要言語の標準ライブラリにGetterを含まないクラスとかまず無いぞ
主要言語の標準ライブラリにGetterを含まないクラスとかまず無いぞ
971デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 13:27:51.70ID:6pEy3XEna >>970
引数のvoid見たこともないのによくそんなこと言えるな…
引数のvoid見たこともないのによくそんなこと言えるな…
972デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/17(月) 13:33:44.73ID:WHxj8IY7a >>969
例えばファイルデスクリプタのようなものもそのデスクリプタによって識別されるファイルに関する情報の読み書きをするオブジェクトと言えるが、それ使ってファイルのバイト数を取得するとかデータを読み書きするとか、普通にやるよね。
例えばファイルデスクリプタのようなものもそのデスクリプタによって識別されるファイルに関する情報の読み書きをするオブジェクトと言えるが、それ使ってファイルのバイト数を取得するとかデータを読み書きするとか、普通にやるよね。
973デフォルトの名無しさん (ワッチョイ 8b01-zlGV)
2019/06/17(月) 13:42:27.76ID:qKjcjk6x0 猿でもわかるポインタって本誰か出せよ
974デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 14:24:17.06ID:6pEy3XEna >>968
そのオブジェクトの中で密接にデータと関連する処理だったらゲッターは使わんでしょう。this->hogeを直接使うだけ。
あとたぶんあなたの場合はセッターゲッターの神髄を知らんと思う。単に構造体のメンバーにアクセスするだけのメソッドをイメージしてもらえれば。
そのオブジェクトの中で密接にデータと関連する処理だったらゲッターは使わんでしょう。this->hogeを直接使うだけ。
あとたぶんあなたの場合はセッターゲッターの神髄を知らんと思う。単に構造体のメンバーにアクセスするだけのメソッドをイメージしてもらえれば。
975デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 14:25:01.27ID:6pEy3XEna 974は972あてね
976デフォルトの名無しさん (ワッチョイ 1aa5-Rc2r)
2019/06/17(月) 14:25:36.67ID:FBMbqlks0977デフォルトの名無しさん (ラクペッ MM73-WxcC)
2019/06/17(月) 14:40:56.45ID:lfEwbGXOM 同一インスタンス内なら余計なことしなくても直接アクセスできる
セッターゲッターは他のインスタンスの変数にアクセスするための手段
オブジェクト間のメッセージパッシングにセッターやゲッターを利用する
セッターゲッターは他のインスタンスの変数にアクセスするための手段
オブジェクト間のメッセージパッシングにセッターやゲッターを利用する
978デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/17(月) 14:41:55.67ID:WHxj8IY7a979デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 15:00:44.76ID:6pEy3XEna >>978
リードオンリーとか言わず、読ませなきゃいいじゃん
リードオンリーとか言わず、読ませなきゃいいじゃん
980デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/17(月) 15:49:21.53ID:WHxj8IY7a >>979
上で書いた文字列クラスの場合の文字数とかファイルのバイト数とか、外部から読めないとまずいものがあると思うんだが。
上で書いた文字列クラスの場合の文字数とかファイルのバイト数とか、外部から読めないとまずいものがあると思うんだが。
981デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 15:57:28.98ID:6pEy3XEna982デフォルトの名無しさん (ラクペッ MM73-WxcC)
2019/06/17(月) 16:10:03.98ID:qeDnhEK2M メンバー変数はreadonlyなどの属性ではなくてprivateアクセス権限を設定して他オブジェクトから隠蔽するのが一般的
983デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/17(月) 17:25:37.86ID:0K02i6cy0 なんでC++とかいう後付けのオブジェクト指向もどき言語で延々と語ってるんだろうか…
984デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 17:48:43.23ID:6pEy3XEna985デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/17(月) 17:52:05.72ID:0K02i6cy0986デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 18:00:37.93ID:6pEy3XEna >>985
つまり、Cの構造体アクセスは実質ゲッターセッターだという主張か?
つまり、Cの構造体アクセスは実質ゲッターセッターだという主張か?
987デフォルトの名無しさん (ワッチョイ 9a79-YCmz)
2019/06/17(月) 18:01:53.33ID:0K02i6cy0 >>986
お前は何を言ってるんだ…
お前は何を言ってるんだ…
988デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/17(月) 18:11:27.38ID:6pEy3XEna >>987
引数void馬鹿を馬鹿にしてんだよ。わからんか?
引数void馬鹿を馬鹿にしてんだよ。わからんか?
989蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-1i7F)
2019/06/17(月) 18:13:51.25ID:Qf1//+vQd そろそろ次のスレ
990デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/17(月) 18:24:49.71ID:3L1/L9kLa >>981
うーん。C++のクラスで喩えられてもすがわからんなあ。C++この頃全然やってないし。
昔ちょっとC++Builder使ったことあるがDelphiの延長線上の使い方しかしなかったし。
とりあえずJavaで言うとそれは何にあたるんだ?
Kotlinでもいいぞ。
うーん。C++のクラスで喩えられてもすがわからんなあ。C++この頃全然やってないし。
昔ちょっとC++Builder使ったことあるがDelphiの延長線上の使い方しかしなかったし。
とりあえずJavaで言うとそれは何にあたるんだ?
Kotlinでもいいぞ。
991デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/17(月) 18:26:16.26ID:3L1/L9kLa すが、じゃねえ、すぐだ。
スマホだと間違いが変になるな。
スマホだと間違いが変になるな。
992デフォルトの名無しさん (アウアウウー Sac7-7DQ/)
2019/06/17(月) 18:28:01.53ID:3L1/L9kLa993デフォルトの名無しさん (ワッチョイ a37b-RuXw)
2019/06/17(月) 19:42:03.79ID:biel+EqR0994デフォルトの名無しさん (ワッチョイ 4e63-9ye8)
2019/06/17(月) 20:01:23.71ID:vIcnvKOP0 IDを非表示にする場合
!extend:none::1000:512
IDを表示し、強制コテハンは表示しない(5ch標準設定と同じ)
!extend:checked::1000:512
IDを表示し、IPアドレスを表示
!extend:checked:vvvv:1000:512
IDを表示し、強制コテハンを表示
(レスの名前欄に「ワッチョイ」「スプー」「ササクッテロ 」などのニックネームがつく)
!extend:checked:vvvvv:1000:512 ← 今はこれ
IDを表示し、IPアドレスと強制コテハンを表示
!extend:checked:vvvvvv:1000:512
RONIN使えばまた表示を消せるので、強制とは言いがたいが
!extend:none::1000:512
IDを表示し、強制コテハンは表示しない(5ch標準設定と同じ)
!extend:checked::1000:512
IDを表示し、IPアドレスを表示
!extend:checked:vvvv:1000:512
IDを表示し、強制コテハンを表示
(レスの名前欄に「ワッチョイ」「スプー」「ササクッテロ 」などのニックネームがつく)
!extend:checked:vvvvv:1000:512 ← 今はこれ
IDを表示し、IPアドレスと強制コテハンを表示
!extend:checked:vvvvvv:1000:512
RONIN使えばまた表示を消せるので、強制とは言いがたいが
995デフォルトの名無しさん (ワッチョイ 5ac5-YCmz)
2019/06/17(月) 20:16:07.33ID:/ODDlXVN0 ああワッチョイ消してる奴ってRONIN使ってるのか
知らなかったな
知らなかったな
996デフォルトの名無しさん (ワッチョイ 6301-AFaF)
2019/06/17(月) 20:27:33.84ID:IK9o4iD50 密結合を避ける
>>995
RONIN 餅ですがワッチョイの消し方がわからないのです、消すつもりもないのですが…
RONIN 餅ですがワッチョイの消し方がわからないのです、消すつもりもないのですが…
998デフォルトの名無しさん (ワッチョイ 3352-9ye8)
2019/06/17(月) 21:23:19.93ID:J2deS77t0 名前欄に!slip:verboseじゃないの?
コテハンとかはどうなるかまでは知らないけど
コテハンとかはどうなるかまでは知らないけど
>>998
どれどれ、試してみましょうか…
どれどれ、試してみましょうか…
1000デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/17(月) 21:29:58.20ID:6C3tyyZH010011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 76日 10時間 6分 21秒
新しいスレッドを立ててください。
life time: 76日 10時間 6分 21秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【小泉農相】コメ生産縮小の転換に意欲示す 「農政を抜本改革」 ★2 [蚤の市★]
- 【池田信夫氏】「男系天皇」が古代からの伝統だという話は明治時代の創作 ★5 [樽悶★]
- 中居正広氏の暴露本争奪戦が水面下で始動 100万部超え間違いなし? [ネギうどん★]
- 【鹿児島】5キロ2000円台ではコメ作りを続けられない――生産者不在で乱高下する米価。消費者も納得できる適正価格は実現するのか? [シャチ★]
- 【兵庫】「斎藤知事に愛想尽きた」兵庫県庁離れ加速 17年ぶり自主退職4割増、他自治体に転職も [煮卵★]
- 【芸能】読者2300人が選んだ 「昭和の漫画ベスト50」 を発表 あの名作、傑作は何位だった? プレイバック「昭和100年」 (産経) [湛然★]
- 都心6区(千代田・中央・港・新宿・文京・渋谷)のタワマン価格、限界突破wwwwwwwwwwwここ以外に住んでるジャップ負け組確定ですw [271912485]
- 【実況】博衣こよりのえちえち鬼武者4🧪
- なぜ日本人は1999年7月に地球が滅亡すると大真面目に信じてしまったのか [884040186]
- 職場の倉庫で55歳の社員とSEXしてしまった‼
- ▶宝鐘マリンと俺様の愛の巣スレ
- 【画像】アラフォーのおっさんの休日ファッションって正直こういうのでいいよな【夏服】 [513133237]