!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
https://mevius.5ch.net/test/read.cgi/tech/1554171817/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 152
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (アウアウウー Sa4f-7DQ/)
2019/06/17(月) 18:27:10.41ID:3L1/L9kLa2デフォルトの名無しさん (ワッチョイ f3f6-2qry)
2019/06/17(月) 21:32:15.53ID:6C3tyyZH0 前スレ
https://mevius.5ch.net/test/read.cgi/tech/1554171817/945
> 928 名前: ◆QZaw55cn4c (ワッチョイ ba47-FGjx)[sage] 投稿日:2019/06/16(日) 13:35:27.88 ID:gDHKfsB60 [1/2]
> >>927
> 無指定でどうこう、というのは確か C89 までの話だったかと
> C99 では C++ と同じく省略しても void と記憶しています
> 945 名前: ◆QZaw55cn4c (ワッチョイ ba47-FGjx)[sage] 投稿日:2019/06/16(日) 21:15:12.39 ID:gDHKfsB60 [2/2]
> >>944
> 多分語義をわざわざ意識していないと思われ
そんなことはどうでもいい
C99でどうたらを早く説明しろ
逃 げ ん な こ ら !
https://mevius.5ch.net/test/read.cgi/tech/1554171817/945
> 928 名前: ◆QZaw55cn4c (ワッチョイ ba47-FGjx)[sage] 投稿日:2019/06/16(日) 13:35:27.88 ID:gDHKfsB60 [1/2]
> >>927
> 無指定でどうこう、というのは確か C89 までの話だったかと
> C99 では C++ と同じく省略しても void と記憶しています
> 945 名前: ◆QZaw55cn4c (ワッチョイ ba47-FGjx)[sage] 投稿日:2019/06/16(日) 21:15:12.39 ID:gDHKfsB60 [2/2]
> >>944
> 多分語義をわざわざ意識していないと思われ
そんなことはどうでもいい
C99でどうたらを早く説明しろ
逃 げ ん な こ ら !
4デフォルトの名無しさん (ワッチョイ 7602-byPh)
2019/06/18(火) 00:14:05.72ID:4drhwQwf0 えーと。ゲッターロボの話をしていたんだっけ?
5デフォルトの名無しさん (ワッチョイ 1ab0-bbbA)
2019/06/18(火) 06:15:08.81ID:3nOE2mBA0 プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
6デフォルトの名無しさん (アウアウウー Sac7-6CEg)
2019/06/18(火) 07:43:45.32ID:EoNkeDzMa >>4
違うよ、ゲッターズ飯田の話だよ。
違うよ、ゲッターズ飯田の話だよ。
7デフォルトの名無しさん (ワッチョイ 7602-byPh)
2019/06/18(火) 11:36:59.75ID:4drhwQwf0 ゲッター(英語表記)getter
翻訳|getter
ブリタニカ国際大百科事典 小項目事典の解説
ゲッター
getter
真空装置内の残留気体を吸着しうる材料のことで,高真空を達成する目的に使用されるもの。固体で吸着作用を行わせるものを接触ゲッター,気体中に分散させて吸着させるものを分散または拡散ゲッターと呼んでいる。
ほとんどの金属は両方のゲッター作用をもっているが,トリウム,バナジウム,チタンなどは接触ゲッターとして,またカルシウム,マグネシウム,バリウムなどは分散ゲッター作用がおもに利用され,蒸着またはスパッタして用いられる。
真空管などの封じた系の真空度維持や,イオンポンプなどに利用されている。
翻訳|getter
ブリタニカ国際大百科事典 小項目事典の解説
ゲッター
getter
真空装置内の残留気体を吸着しうる材料のことで,高真空を達成する目的に使用されるもの。固体で吸着作用を行わせるものを接触ゲッター,気体中に分散させて吸着させるものを分散または拡散ゲッターと呼んでいる。
ほとんどの金属は両方のゲッター作用をもっているが,トリウム,バナジウム,チタンなどは接触ゲッターとして,またカルシウム,マグネシウム,バリウムなどは分散ゲッター作用がおもに利用され,蒸着またはスパッタして用いられる。
真空管などの封じた系の真空度維持や,イオンポンプなどに利用されている。
8デフォルトの名無しさん (ワッチョイ 97d2-bbnY)
2019/06/18(火) 15:20:40.49ID:oEueUArW0 gccのmallocはdlmallocを元に作られているから
mallocを何度も使って小さな領域を沢山確保する場合にもパフォーマンスは
下がりませんか?
mallocを何度も使って小さな領域を沢山確保する場合にもパフォーマンスは
下がりませんか?
9デフォルトの名無しさん (ブーイモ MM7f-4ioR)
2019/06/19(水) 02:34:24.10ID:ZgdO+9arM >>8
推測するな計測せよ
推測するな計測せよ
10デフォルトの名無しさん (ワッチョイ 97d2-i1kE)
2019/06/19(水) 07:38:10.07ID:vrDHbYoN0 mallocを作るにはmmapつかえばいいの?
どうやるの?
どうやるの?
11デフォルトの名無しさん (ワッチョイ 3e7c-YCmz)
2019/06/19(水) 09:36:35.28ID:nmMioiMa0 >>10
まずは蟹炒飯本のmallocを実装して勉強する
まずは蟹炒飯本のmallocを実装して勉強する
12デフォルトの名無しさん (ワッチョイ 1ab9-LWbF)
2019/06/19(水) 09:56:34.26ID:8qBvJS/J0 静的解析ツールはぬるぽとかメモリリークをどれくらい防げるものなの?
13デフォルトの名無しさん (アウアウエー Sa52-H7EU)
2019/06/19(水) 10:09:33.60ID:aZN2ypMKa ポインタが多階層にまたがって参照されるクソコード書かなければ、ほぼ見つけてくれるよ。
勉強になるから積極的に使った方がいいよ。
勉強になるから積極的に使った方がいいよ。
14デフォルトの名無しさん (ワッチョイ 97d2-i1kE)
2019/06/19(水) 11:35:55.89ID:vrDHbYoN015デフォルトの名無しさん (アウアウカー Sac3-H7EU)
2019/06/19(水) 12:06:52.71ID:hHOnGKPJa >>14
sbrk
sbrk
>>13
静的解析ツールの定番はなんでしょうか?
静的解析ツールの定番はなんでしょうか?
17デフォルトの名無しさん (ワッチョイ 9a01-zlGV)
2019/06/19(水) 21:39:24.52ID:2V8FHzvC018デフォルトの名無しさん (ワッチョイ 93b9-br4T)
2019/06/23(日) 09:04:18.97ID:6LMXkq2m0 lintのポータビリティチェックはどれくらいポータブルにしてくれるものなの?
19デフォルトの名無しさん (オッペケ Sr8d-br4T)
2019/06/23(日) 10:44:43.88ID:NJ0BedP7r 演算に関する質問です。
8.21 * 5 = 41.050000000004←この4は何者でしょうか?
左の「8.21」が浮動小数点数、右の「5」は整数です。
演算の結果、制限の少ない型、すなわち浮動小数点数に変換されるのですが、
上記結果に示すように最後の4が何?不具合?
C言語の歴史は長いのに、こういう初歩的なミスをどうして今の今まで気づかず、放置したんですか。
これを契機に俺は浮動小数点数は使わないことにした。
8.21 * 5 = 41.050000000004←この4は何者でしょうか?
左の「8.21」が浮動小数点数、右の「5」は整数です。
演算の結果、制限の少ない型、すなわち浮動小数点数に変換されるのですが、
上記結果に示すように最後の4が何?不具合?
C言語の歴史は長いのに、こういう初歩的なミスをどうして今の今まで気づかず、放置したんですか。
これを契機に俺は浮動小数点数は使わないことにした。
20デフォルトの名無しさん (ワッチョイ 4101-LvUn)
2019/06/23(日) 10:49:35.98ID:swNRnu09021デフォルトの名無しさん (ワッチョイ a152-0BNU)
2019/06/23(日) 11:00:21.67ID:0CutuGif0 そのような現象が起こるのはC言語の浮動小数点数に限った話ではない
基本的に0か1かの世界であるコンピュータがどうやって浮動小数点数を扱っているのか
その辺のことを考えながらすこし色々調べ直したほうが良い
正確な精度が必要なら浮動小数点数じゃなくて任意精度計算のライブラリを使いましょう
基本的に0か1かの世界であるコンピュータがどうやって浮動小数点数を扱っているのか
その辺のことを考えながらすこし色々調べ直したほうが良い
正確な精度が必要なら浮動小数点数じゃなくて任意精度計算のライブラリを使いましょう
22デフォルトの名無しさん (ワッチョイ 93a5-BUGM)
2019/06/23(日) 12:07:37.92ID:LchWS7uN0 マジモンのネタか
ホームラン級のアホか
それとも嵐か
第四の選択肢をもった世界初の偉人か
どれだ
ホームラン級のアホか
それとも嵐か
第四の選択肢をもった世界初の偉人か
どれだ
23デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/23(日) 12:20:26.35ID:6tta8QXL0 四次元空間の歪みが原因
24デフォルトの名無しさん (オッペケ Sr8d-br4T)
2019/06/23(日) 12:35:51.53ID:NJ0BedP7r >>21
答えを教えてください。最後の4の正体はなんですか?初心者なので。
答えを教えてください。最後の4の正体はなんですか?初心者なので。
25デフォルトの名無しさん (ワッチョイ a152-0BNU)
2019/06/23(日) 12:55:52.97ID:0CutuGif026デフォルトの名無しさん (オッペケ Sr8d-BCoK)
2019/06/23(日) 13:11:05.43ID:WmqFlq0Wr >>25
スレタイにあるとおりC言語なら俺に聞けとあります。あなたは、その「俺」ではないのですか?なければやむを得ませんね。
スレタイにあるとおりC言語なら俺に聞けとあります。あなたは、その「俺」ではないのですか?なければやむを得ませんね。
27デフォルトの名無しさん (ワッチョイ a152-0BNU)
2019/06/23(日) 13:19:19.31ID:0CutuGif0 ちなみにあなたの質問は「C言語」についての質問になっていません
「浮動小数点数を扱う規格」とそれを使った計算結果の質問です
なのでそもそもこのスレで答える筋合いがありません
「浮動小数点数を扱う規格」とそれを使った計算結果の質問です
なのでそもそもこのスレで答える筋合いがありません
28デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/23(日) 13:38:06.54ID:6tta8QXL029デフォルトの名無しさん (オッペケ Sr8d-BCoK)
2019/06/23(日) 14:23:31.49ID:WmqFlq0Wr >>28
コピペではありません。手入力です。0は重要ではありません。最後の4が曲者です
コピペではありません。手入力です。0は重要ではありません。最後の4が曲者です
30デフォルトの名無しさん (アウアウカー Sa5d-WCFA)
2019/06/23(日) 14:28:01.64ID:q+spl44ja 誰かと思ったら引数voidじゃん。
31デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/23(日) 14:38:43.89ID:6tta8QXL0 手入力だったのかw
じゃあ犯人は君の右手だ
じゃあ犯人は君の右手だ
32デフォルトの名無しさん (オッペケ Sr8d-BCoK)
2019/06/23(日) 14:55:34.65ID:WmqFlq0Wr そもそもなぜ4でなく0で完結しないのか。0だと不都合があるのか、本質が議論されていないからいつまでたってても解決しませんよ。
33デフォルトの名無しさん (ワッチョイ 4101-LvUn)
2019/06/23(日) 15:22:02.08ID:swNRnu09034デフォルトの名無しさん (オッペケ Sr8d-BCoK)
2019/06/23(日) 15:27:27.16ID:WmqFlq0Wr >>33
んむ、、。。
んむ、、。。
35デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/23(日) 15:31:00.34ID:6tta8QXL0 桁数には頓着せずに見かけの数値に拘るって
どこかが変
どこかが変
36デフォルトの名無しさん (ワッチョイ 5352-fmV5)
2019/06/23(日) 15:31:16.28ID:vVd52qKZ037デフォルトの名無しさん (オッペケ Sr8d-BCoK)
2019/06/23(日) 15:36:12.25ID:WmqFlq0Wr >>35
手入力で適当に0埋めたからヒューマンエラーがあってしかるべき。だからおかしくない。
手入力で適当に0埋めたからヒューマンエラーがあってしかるべき。だからおかしくない。
38デフォルトの名無しさん (アウアウエー Sa23-WCFA)
2019/06/23(日) 16:21:26.48ID:lZwOGhs8a >>37
ゲッターの話はもういいの?
ゲッターの話はもういいの?
39デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/23(日) 16:24:54.10ID:QCIWb8Wa0 0.821を=a/2+b/4+c/8+....ってやってみて
出てきたabcd.....を5倍すると最後が4になるってことだよ
出てきたabcd.....を5倍すると最後が4になるってことだよ
40デフォルトの名無しさん (ワッチョイ 21f6-Im5L)
2019/06/23(日) 16:48:18.15ID:x5yyaGlX0 マジレスできるが、おまえの態度が気に入らない
41デフォルトの名無しさん (ブーイモ MMb3-ajKL)
2019/06/23(日) 17:35:42.12ID:2hTCNg/0M このレベルの質問者に対して、ieee754読んでこいおしまいも、そうとうどうにかしてる
42蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdb3-Ascm)
2019/06/23(日) 17:39:16.12ID:/bRV2XXvd 基本情報の範囲でしょ。勉強不足。
43デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/23(日) 17:50:45.53ID:6tta8QXL0 質問自体がネタにしか思えないからなあ
44デフォルトの名無しさん (オッペケ Sr8d-BCoK)
2019/06/23(日) 18:04:53.73ID:RHMsicrzr45デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/23(日) 18:09:08.51ID:6tta8QXL0 >>44
回答してもらって納得するよりも、
自分でやる方が遙かに勉強になる
ヒントだけ書いておこう
数値の内部表現を調べて、演算仮定を追いかけ
計算結果の内部表現を見て、それを10進表示に戻す
以上を追いかけていけば自ずと回答がでる
回答してもらって納得するよりも、
自分でやる方が遙かに勉強になる
ヒントだけ書いておこう
数値の内部表現を調べて、演算仮定を追いかけ
計算結果の内部表現を見て、それを10進表示に戻す
以上を追いかけていけば自ずと回答がでる
46デフォルトの名無しさん (ワッチョイ 9301-w2KU)
2019/06/23(日) 18:17:35.42ID:CFRhe1LU0 >>41
今時ググればいくらでも情報あるから自分で調べる気があるならキーワードだけで充分だろ
今時ググればいくらでも情報あるから自分で調べる気があるならキーワードだけで充分だろ
47デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/23(日) 18:18:38.46ID:QCIWb8Wa0 みんなこの質問に答えると中出しセックスできると本心では思っているからなかなかおしえてくれないよな
中出しセックスができなくなるアニメとかゲームとかパソコンの質問は簡単に教えてもらえるよ
中出しセックスができなくなるアニメとかゲームとかパソコンの質問は簡単に教えてもらえるよ
48デフォルトの名無しさん (ワッチョイ db02-WXYe)
2019/06/24(月) 00:03:38.49ID:JSF3ka2M0 >>19
普通はCは浮動小数点を内部で2進数で扱っているため。
10進数で歯切れのよい数でも2進数では循環小数になったりして割り切れない値になることがある(例えば10進数で 0.1 は2進数では 0.00110011...という循環小数になる)。そうなるとどうしても10進数文字列への変換で近似値にしか変換できない。
では最初から内部も全て10進数で全て計算すれば良いではないかと思うかも知れないが、それではコンピュータ内部での計算が遅くなる。
遅くなってでも正確さが必用とされるお金の計算等はそれ用のコンパイラまたはライブラリを使用して実現する(あるいはC言語ではないそれ用に設計された言語を使う)。
デフォルトではCは誤差が出てもいいから素早く計算出来る状態になっていると考えて良い。
普通はCは浮動小数点を内部で2進数で扱っているため。
10進数で歯切れのよい数でも2進数では循環小数になったりして割り切れない値になることがある(例えば10進数で 0.1 は2進数では 0.00110011...という循環小数になる)。そうなるとどうしても10進数文字列への変換で近似値にしか変換できない。
では最初から内部も全て10進数で全て計算すれば良いではないかと思うかも知れないが、それではコンピュータ内部での計算が遅くなる。
遅くなってでも正確さが必用とされるお金の計算等はそれ用のコンパイラまたはライブラリを使用して実現する(あるいはC言語ではないそれ用に設計された言語を使う)。
デフォルトではCは誤差が出てもいいから素早く計算出来る状態になっていると考えて良い。
49デフォルトの名無しさん (アウアウエー Sa23-WCFA)
2019/06/24(月) 01:06:30.65ID:zV4JNsEga cでデシマル型ってあんの?
50蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ f101-Ascm)
2019/06/24(月) 03:15:28.63ID:eqHVB1zL0 ない。
5118 (ワッチョイ 93b9-br4T)
2019/06/24(月) 05:23:21.67ID:218UFAwP052デフォルトの名無しさん (ドコグロ MM2d-w2KU)
2019/06/24(月) 07:23:45.27ID:zxVE+D4VM >>48
> では最初から内部も全て10進数で全て計算すれば良いではないかと思うかも知れないが、それではコンピュータ内部での計算が遅くなる。
それ以前に1/3ってやられたら同じことになる
10進数だと内部形式と外部形式で変換誤差が出ないだけで計算にまで言及したら10進数も2進数も同じだよ
> では最初から内部も全て10進数で全て計算すれば良いではないかと思うかも知れないが、それではコンピュータ内部での計算が遅くなる。
それ以前に1/3ってやられたら同じことになる
10進数だと内部形式と外部形式で変換誤差が出ないだけで計算にまで言及したら10進数も2進数も同じだよ
53デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 09:50:57.10ID:Ih+U6NjR0 要は有効桁数を意識してりゃいいんだよ
それ以上の制度が欲しいなら専用ライブラリ使えばいい
それ以上の制度が欲しいなら専用ライブラリ使えばいい
54デフォルトの名無しさん (ワッチョイ 4b7c-eGkX)
2019/06/24(月) 11:14:12.23ID:UiRTkeqO0 2進数で計算する方が悪い
ちゃんと10進数で計算するライブラリを使え
ちゃんと10進数で計算するライブラリを使え
55デフォルトの名無しさん (アウアウカー Sa5d-WCFA)
2019/06/24(月) 12:10:10.27ID:K2wdCfDba >>54
53の言ってる意味わからんでしょ
53の言ってる意味わからんでしょ
56デフォルトの名無しさん (ワッチョイ 21f6-Im5L)
2019/06/24(月) 12:34:02.56ID:yt8SVBnP058デフォルトの名無しさん (ブーイモ MMb3-ajKL)
2019/06/24(月) 13:01:39.05ID:KbxaxfSBM 有理数で計算するライブラリを使えばいい。
パイ?何それおっぱいのこと?
パイ?何それおっぱいのこと?
59デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 13:12:08.72ID:BrGul7Md0 有理数計算は実装してみれば分かるが圧倒的に遅いからな
無理数はどうやって実装するのか知らん
無理数はどうやって実装するのか知らん
60デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/24(月) 15:14:23.48ID:KYWI3ygZ0 有理数で計算したあと最後に無理数に直すところで一番最後が4になったらどうするんだよ
61デフォルトの名無しさん (アークセー Sx8d-LvUn)
2019/06/24(月) 15:23:01.79ID:HSUghupZx >>60
4を引けばいいじゃない。
4を引けばいいじゃない。
62デフォルトの名無しさん (アウアウエー Sa23-WCFA)
2019/06/24(月) 15:23:13.21ID:zV4JNsEga 無理数って円周率とかeだろ?
違ったっけ?
違ったっけ?
63デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/24(月) 15:30:42.35ID:KYWI3ygZ0 有理数じゃなければ無理数だろ
64デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 16:31:31.15ID:Ih+U6NjR0 メモリが有限である限り無理数を厳密に表現するのは不可能だよ
65デフォルトの名無しさん (ワッチョイ 93b9-br4T)
2019/06/24(月) 16:33:17.68ID:218UFAwP0 C言語でWebAssemblyできるみたいだけど
ハードウェアに近いとこでもなければC言語は使わないほうが良いイメージだけど
実際WebAssembly的にCはどうなんだろうか?
ハードウェアに近いとこでもなければC言語は使わないほうが良いイメージだけど
実際WebAssembly的にCはどうなんだろうか?
66デフォルトの名無しさん (アウアウウー Sac5-LvUn)
2019/06/24(月) 16:44:03.34ID:T0z2fm5aa >>64
数値演算に拘ならければ数式処理でπはπ、√2は√2のままで計算できるだろ。
数値演算に拘ならければ数式処理でπはπ、√2は√2のままで計算できるだろ。
67デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 16:50:34.10ID:Ih+U6NjR068デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 16:52:25.55ID:Ih+U6NjR0 >>67
31兆桁ね
31兆桁ね
69デフォルトの名無しさん (ワッチョイ ab02-3bkH)
2019/06/24(月) 16:58:47.67ID:Vk3kXnxv0 > πは14桁で事足りるし
ぐるぐる回転するとだんだんずれてくる
ぐるぐる回転するとだんだんずれてくる
70デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 17:08:19.82ID:Ih+U6NjR0 >>69
なら必要な精度だせばいいじゃん
なら必要な精度だせばいいじゃん
71デフォルトの名無しさん (アウアウウー Sac5-LvUn)
2019/06/24(月) 17:09:23.06ID:T0z2fm5aa72デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 17:13:52.11ID:Ih+U6NjR073デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/24(月) 17:15:00.84ID:KYWI3ygZ0 >>71
数式でいいなら紙に数式を書けばそれが答えじゃないのか?
数式でいいなら紙に数式を書けばそれが答えじゃないのか?
74デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/24(月) 17:18:50.20ID:KYWI3ygZ0 でもpiを1として考えたら1が1/piになるんじゃないのか?
75デフォルトの名無しさん (アウアウウー Sac5-LvUn)
2019/06/24(月) 17:25:35.31ID:T0z2fm5aa76デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/24(月) 17:32:02.39ID:3Q+jRQuy0 建築設計や土木設計の時の数量計算なら、数字を出さないといけませんよ
77デフォルトの名無しさん (ワッチョイ 2b7b-wvXS)
2019/06/24(月) 17:34:05.13ID:S0Qqu87l0 最終的に望む精度で出せばいいだけでは
78デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/24(月) 17:34:44.59ID:KYWI3ygZ0 >>75
じゃあはじめから紙でいいだろ
じゃあはじめから紙でいいだろ
79デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/24(月) 17:37:46.46ID:KYWI3ygZ0 紙が足りなくなってきたら最初の方から消しゴムで消していけばいいだけだからいつかは書き終わるだろう
80デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 17:47:35.39ID:Ih+U6NjR0 半径5の円の面積求めなさいって言われて
78.5... と数値として答えるか 5^2*pi と数式で答えるか
俺は数値の精度の話をしてたんだよ
78.5... と数値として答えるか 5^2*pi と数式で答えるか
俺は数値の精度の話をしてたんだよ
81デフォルトの名無しさん (アウアウカー Sa5d-WCFA)
2019/06/24(月) 17:53:40.54ID:HRlrDhQRa 数値にしたら負けだよな
82デフォルトの名無しさん (ワッチョイ 49d2-mDEe)
2019/06/24(月) 17:55:12.54ID:7zvW/rVQ0 BCDコードは流行りませんか?
83デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:08:31.47ID:BrGul7Md0 有理数を実装すればいかなる整数m, n に対しても m / n * n がきちんと m に戻る
(decimal型でも普通無理)
同じようなことを無理数でやる方法がわからんって話よ
無理数が厳密に数値化できないなんて誰でも知ってる話はせんわ
(decimal型でも普通無理)
同じようなことを無理数でやる方法がわからんって話よ
無理数が厳密に数値化できないなんて誰でも知ってる話はせんわ
84デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 18:30:26.02ID:Ih+U6NjR085デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:34:28.07ID:BrGul7Md086デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 18:37:48.29ID:Ih+U6NjR087デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:39:33.96ID:BrGul7Md088デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:40:08.00ID:BrGul7Md0 「どう実現すればいいのかわからない」だった
89デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 18:40:45.27ID:Ih+U6NjR0 >>87
何を実現したいのよ
何を実現したいのよ
90デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:42:33.59ID:BrGul7Md091デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 18:43:40.86ID:Ih+U6NjR0 >>90
じゃあ数式処理でいいじゃんw
じゃあ数式処理でいいじゃんw
92デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:46:56.46ID:BrGul7Md0 >>91
その数式処理をどうやるのか知らないって話なんだが
その数式処理をどうやるのか知らないって話なんだが
93デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 18:48:23.44ID:Ih+U6NjR094デフォルトの名無しさん (ワッチョイ 9985-gMjT)
2019/06/24(月) 18:50:18.95ID:DSBJ/2Do0 Mathmatica 的に数式処理したいならそういうパーサーを書いてだな…
解析解が求まるといいですね (lol
解析解が求まるといいですね (lol
95蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdb3-Ascm)
2019/06/24(月) 18:50:43.29ID:oK/rIQPyd C++ 数式処理ライブラリ
で検索。
で検索。
96デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:51:36.46ID:BrGul7Md0 >>93
Mathmaticaいくらすると思ってんだよ…
Mathmaticaいくらすると思ってんだよ…
97デフォルトの名無しさん (ワッチョイ 9379-eGkX)
2019/06/24(月) 18:53:18.44ID:BrGul7Md0 そもそもどう処理してるのか興味があるだけなんだがな
OSS漁ればあるかな
OSS漁ればあるかな
98デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 18:53:43.02ID:Ih+U6NjR099デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/24(月) 19:07:01.18ID:KYWI3ygZ0 「数式処理ソフト」と紙に書けばいいんじゃないのか?
100デフォルトの名無しさん (アウアウウー Sac5-LvUn)
2019/06/24(月) 19:23:05.36ID:T0z2fm5aa101デフォルトの名無しさん (ワッチョイ c17b-3I+E)
2019/06/24(月) 19:26:15.32ID:6eeWUnLH0 「計算のステップごとに増えてく誤差の蓄積」と、
「最後に(それまで記号的に扱うことで保留していた)
無理数や無限小数を実際の数値に直す際の誤差」と、
話がゴッチャになってるでしょ。
「最後に(それまで記号的に扱うことで保留していた)
無理数や無限小数を実際の数値に直す際の誤差」と、
話がゴッチャになってるでしょ。
102デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 19:27:51.25ID:Ih+U6NjR0103デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/24(月) 19:29:37.69ID:3Q+jRQuy0 ここはC言語のスレですよ
数式処理スレじゃないです
数式処理スレじゃないです
104デフォルトの名無しさん (アウアウウー Sac5-LvUn)
2019/06/24(月) 19:33:07.57ID:T0z2fm5aa >>102
なら最初からそう書けばいいのに、何で数値解にこだわったの?俺は最初からこだわらなければと書いてるけど?
なら最初からそう書けばいいのに、何で数値解にこだわったの?俺は最初からこだわらなければと書いてるけど?
105デフォルトの名無しさん (ワッチョイ 2b63-0BNU)
2019/06/24(月) 19:35:48.83ID:3Q+jRQuy0 C言語で扱えるのは数値解でしょ
それ以外はスレ違いのテーマ
それ以外はスレ違いのテーマ
106デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 19:38:12.07ID:Ih+U6NjR0107デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 19:40:21.01ID:Ih+U6NjR0 >>105
その通りだね
その通りだね
108デフォルトの名無しさん (ワッチョイ 4101-LvUn)
2019/06/24(月) 19:44:36.26ID:rEOVCAEx0109デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 19:47:11.95ID:Ih+U6NjR0 >>108
その当たり前を分かってないからこうなってるじゃんw
その当たり前を分かってないからこうなってるじゃんw
多桁長演算は、私もすごく欲しくて遂には C++ で書いてみました
これさえあれば、有理数ライブラリもすぐに書けるでしょう
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
無理数は無理ですが
これさえあれば、有理数ライブラリもすぐに書けるでしょう
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
無理数は無理ですが
112デフォルトの名無しさん (ワッチョイ 4101-LvUn)
2019/06/24(月) 19:56:21.02ID:rEOVCAEx0 >>109
ま、ここではよくあるコミニュケーションエラーだったね。
建設的な議論になりそうにないので、もうやめとこ。
俺は数式処理にMathmaticaしか使ったことないけど、オープンソースでMaximaってソフトあるね。
どういう実装になってるのか今度見てみよう。
ま、ここではよくあるコミニュケーションエラーだったね。
建設的な議論になりそうにないので、もうやめとこ。
俺は数式処理にMathmaticaしか使ったことないけど、オープンソースでMaximaってソフトあるね。
どういう実装になってるのか今度見てみよう。
113デフォルトの名無しさん (アウアウエー Sa23-WCFA)
2019/06/24(月) 19:58:51.26ID:zV4JNsEga 数式処理はコンパイラ書くのと同じですよ。
記号操作なんだから、ある意味コンピュータの仕事の本質です。数値よりも。
記号操作なんだから、ある意味コンピュータの仕事の本質です。数値よりも。
114デフォルトの名無しさん (アウアウエー Sa23-WCFA)
2019/06/24(月) 20:00:22.77ID:zV4JNsEga あと、mathematicaは任意桁の誤差なしの数値計算もできるけど、そっちはGNUのライブラリ使ってたのではないかと。
115デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 20:07:45.26ID:Ih+U6NjR0 Axiomってのもソース読めるな
探せば色々でてくる
パーサ書くなら昔はlexとyaccが定番だったけど今は何使ってるのかね
探せば色々でてくる
パーサ書くなら昔はlexとyaccが定番だったけど今は何使ってるのかね
116デフォルトの名無しさん (ドコグロ MM2d-w2KU)
2019/06/24(月) 20:09:05.85ID:zxVE+D4VM117デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/24(月) 20:12:05.34ID:Ih+U6NjR0118デフォルトの名無しさん (ワッチョイ 4101-LvUn)
2019/06/24(月) 20:14:52.08ID:rEOVCAEx0119デフォルトの名無しさん (ワッチョイ 9301-w2KU)
2019/06/24(月) 21:54:22.85ID:f0ou4boT0 πの定義って本当は難しいではないかと考えるようになりました…
121デフォルトの名無しさん (ラクペッ MM3d-0kke)
2019/06/25(火) 01:28:22.57ID:uTzXwYL5M 定義そのものは単純
円の直径と円周の長さの比
円の直径と円周の長さの比
123デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/25(火) 01:51:31.50ID:9pz2xub80 え?
124デフォルトの名無しさん (ワッチョイ 5352-fmV5)
2019/06/25(火) 02:12:37.49ID:F7MMtx7f0 >>122
もうC言語に関係のない話題なんだから黙ってろよ
もうC言語に関係のない話題なんだから黙ってろよ
125デフォルトの名無しさん (ワッチョイ db02-WXYe)
2019/06/25(火) 03:38:38.87ID:t3KmtNcy0 えーと、>>19から延々と話が続いてんのかな?
126デフォルトの名無しさん (アウアウエー Sa23-WCFA)
2019/06/25(火) 03:58:09.25ID:XPL9ybbga 引数にvoidを指定したときから続いてる
127デフォルトの名無しさん (ワッチョイ 21f6-Im5L)
2019/06/25(火) 06:03:41.53ID:JYAeHTmF0 >>64
いや可能だよ
おまえさんがそう発言しているのは
有限のメモリを使って表示されている電子教材に厳密な定義が書いてあるからだ
それはおそらく自然言語で書かれたものだろうがCに翻訳するのはおまえさんの仕事だ
いや可能だよ
おまえさんがそう発言しているのは
有限のメモリを使って表示されている電子教材に厳密な定義が書いてあるからだ
それはおそらく自然言語で書かれたものだろうがCに翻訳するのはおまえさんの仕事だ
128デフォルトの名無しさん (ワッチョイ f101-0BNU)
2019/06/25(火) 15:14:34.88ID:9pz2xub80 ホラーだなw
129デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/25(火) 16:03:33.62ID:AVCUyi6k0 いま気づいたんだけどgccの拡張使えばC++のテンプレート的なことできるな
130デフォルトの名無しさん (アウアウウー Sac5-5X+l)
2019/06/25(火) 16:10:30.14ID:AwR7wU0da 素直にg++を使えばいいような・・・
131デフォルトの名無しさん (ワッチョイ 4b7c-eGkX)
2019/06/25(火) 16:24:43.72ID:Z38gwzpf0 >>129
させねーよ・・・
させねーよ・・・
132デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/25(火) 16:35:26.91ID:AVCUyi6k0 >>131
どいうこと?
どいうこと?
133デフォルトの名無しさん (ワッチョイ 9384-F2Fz)
2019/06/26(水) 02:05:22.90ID:alD8Bem60 このMSの新コンソールのデモビデオ
https://youtu.be/8gw0rXPMMPE
編集してるのは C のソースのように見えるけど
"<=" を "≦" に変えたり、"==" を "=" にしたりとか何の冗談だろう
それとも本当に こういう文字も OK になるのか?
オレが知らないだけで すでに OK なのか?
https://youtu.be/8gw0rXPMMPE
編集してるのは C のソースのように見えるけど
"<=" を "≦" に変えたり、"==" を "=" にしたりとか何の冗談だろう
それとも本当に こういう文字も OK になるのか?
オレが知らないだけで すでに OK なのか?
134デフォルトの名無しさん (ブーイモ MM75-BlS2)
2019/06/26(水) 02:17:04.58ID:dK4c3UqUM お前が知らないだけ
135デフォルトの名無しさん (ブーイモ MM75-BlS2)
2019/06/26(水) 02:19:08.09ID:dK4c3UqUM リガチャでググれ
136デフォルトの名無しさん (ワッチョイ 9384-F2Fz)
2019/06/26(水) 02:38:59.73ID:alD8Bem60 >>134-135
ググった。どうも
Unicode のリガチャ? とすると見かけだけではなくて、ファイルに格納したときの文字コードも
変わるってこと?
ていうか最近の C コンパイラはそれを認識するのか?
ググった。どうも
Unicode のリガチャ? とすると見かけだけではなくて、ファイルに格納したときの文字コードも
変わるってこと?
ていうか最近の C コンパイラはそれを認識するのか?
137デフォルトの名無しさん (ワッチョイ 9384-F2Fz)
2019/06/26(水) 03:00:34.30ID:alD8Bem60138デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
2019/06/26(水) 05:32:18.41ID:vCLnuco30 fira codeっていうのがあってな
emacsでもつかえる
emacsでもつかえる
139デフォルトの名無しさん (ワッチョイ 93a5-BUGM)
2019/06/26(水) 11:01:02.69ID:kpnHwXwW0140デフォルトの名無しさん (アウアウエー Sab2-a57L)
2019/06/27(木) 18:52:32.86ID:tbUThdPVa141デフォルトの名無しさん (ワッチョイ a9d2-nz/j)
2019/06/27(木) 19:26:18.86ID:fhoZJ8gK0142デフォルトの名無しさん (アウアウウー Sa11-jhwL)
2019/06/27(木) 21:23:07.41ID:tw9eT+4Xa およそ3
143デフォルトの名無しさん (ワッチョイ b982-bYGp)
2019/06/27(木) 22:09:24.03ID:E9QSvqb40 C11を使っています。
#include <stdbool.h>
void main( void)
{
int cnt = 0;
bool hoge = false;
while( !hoge){
if( cnt++ >= 10) hoge = true;
}
このような感じのコードを実行したところ、ループから抜けません。
stdbool.hにはtrueが1と定義されているので、10回ループを回ると
while(!1)と同じ状態になると思います。
これはfalseと等価とは扱われないのですか?
#include <stdbool.h>
void main( void)
{
int cnt = 0;
bool hoge = false;
while( !hoge){
if( cnt++ >= 10) hoge = true;
}
このような感じのコードを実行したところ、ループから抜けません。
stdbool.hにはtrueが1と定義されているので、10回ループを回ると
while(!1)と同じ状態になると思います。
これはfalseと等価とは扱われないのですか?
144デフォルトの名無しさん (アウアウエー Sab2-w2nb)
2019/06/27(木) 22:17:33.62ID:xVmqmc55a C11とは
146143 (ワッチョイ b982-bYGp)
2019/06/27(木) 22:22:52.82ID:E9QSvqb40147蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 2501-ovsj)
2019/06/27(木) 22:23:58.00ID:PK9sLC9K0 あまり一般的じゃないコンパイラだね。バグか。
148デフォルトの名無しさん (アウアウエー Sab2-w2nb)
2019/06/27(木) 22:36:05.09ID:xVmqmc55a !!!hageとかすると動くんでしょうね
149デフォルトの名無しさん (ワッチョイ 9df6-bYGp)
2019/06/28(金) 09:20:40.61ID:aeC7bTCc0 >>144
まさか知らんのか?
ISO/IEC9899:2011のことだよ
ISO/IEC9899:2018が現行規格で、
それの1個前の旧規格だ
・・・またおかしいことになってるな
ISO/IEC9899:1990がC89なのと同様
ISO/IEC9899:2018がC17だ
まさか知らんのか?
ISO/IEC9899:2011のことだよ
ISO/IEC9899:2018が現行規格で、
それの1個前の旧規格だ
・・・またおかしいことになってるな
ISO/IEC9899:1990がC89なのと同様
ISO/IEC9899:2018がC17だ
150デフォルトの名無しさん (アウアウエー Sab2-w2nb)
2019/06/28(金) 09:29:32.78ID:1Q6Ak4jma151デフォルトの名無しさん (アークセー Sxed-DJN3)
2019/06/28(金) 09:46:32.88ID:apo2D6tyx152デフォルトの名無しさん (ワッチョイ 8669-zwFU)
2019/06/28(金) 11:05:29.15ID:BZSAOrWQ0 hoge は不変とみなしてループ外に追い出すような類推が働いてしまうコードっぽくないのに
true との比較ではなく !hoge だから間違いもおこさない形式だし
true との比較ではなく !hoge だから間違いもおこさない形式だし
153デフォルトの名無しさん (バッミングク MMa1-DJN3)
2019/06/28(金) 12:18:07.65ID:T5ABk70zM そもそもこのループは最適化で1行も生成されてないと推測。
んで何かの勘違いで抜けてないと思ってしまったと予想。
んで何かの勘違いで抜けてないと思ってしまったと予想。
154デフォルトの名無しさん (ワッチョイ 5d52-3te8)
2019/06/28(金) 12:24:53.76ID:xv7yRtbc0 gccの -std=c11 -O0 でやったら終了した
155デフォルトの名無しさん (ワッチョイ 9df6-bYGp)
2019/06/28(金) 12:52:11.88ID:aeC7bTCc0 >>148
ノ
彡 ノ
ノ
ノノ ミ
〆⌒ ヽ彡
(´・ω・`)
ノ
彡 ノ
ノ
ノノ ミ
〆⌒ ヽ彡
(´・ω・`)
156デフォルトの名無しさん (ワッチョイ a914-3te8)
2019/06/28(金) 12:54:28.02ID:6cUEPi280 if文の中を hoge == true とタイプミスしているとか
157デフォルトの名無しさん (ワッチョイ 9df6-bYGp)
2019/06/28(金) 13:12:10.56ID:aeC7bTCc0 >>143
str fp, [sp, #-4]!
add fp, sp, #0
sub sp, sp, #12
mov r3, #0
str r3, [fp, #-8]
mov r3, #0
strb r3, [fp, #-9]
b .L2
.L3:
ldr r3, [fp, #-8]
add r2, r3, #1
str r2, [fp, #-8]
cmp r3, #9
ble .L2
mov r3, #1
strb r3, [fp, #-9]
.L2:
ldrb r3, [fp, #-9]
eor r3, r3, #1
and r3, r3, #255
cmp r3, #0
bne .L3
nop
add sp, fp, #0
@ sp needed
ldr fp, [sp], #4
bx lr
問題なさそうだが、本当に抜けなくなったのか?
str fp, [sp, #-4]!
add fp, sp, #0
sub sp, sp, #12
mov r3, #0
str r3, [fp, #-8]
mov r3, #0
strb r3, [fp, #-9]
b .L2
.L3:
ldr r3, [fp, #-8]
add r2, r3, #1
str r2, [fp, #-8]
cmp r3, #9
ble .L2
mov r3, #1
strb r3, [fp, #-9]
.L2:
ldrb r3, [fp, #-9]
eor r3, r3, #1
and r3, r3, #255
cmp r3, #0
bne .L3
nop
add sp, fp, #0
@ sp needed
ldr fp, [sp], #4
bx lr
問題なさそうだが、本当に抜けなくなったのか?
158デフォルトの名無しさん (ラクペッ MM15-l1Qe)
2019/06/28(金) 13:22:10.14ID:j6O/VBH7M そのコードはx86 じゃないの?
STM32用の開発ツールらしいしARMのコードを吐くコンパイラだろ
STM32用の開発ツールらしいしARMのコードを吐くコンパイラだろ
159デフォルトの名無しさん (ワッチョイ 9df6-bYGp)
2019/06/28(金) 16:31:54.35ID:aeC7bTCc0 おまえさん、x86のレジスタ名は知ってるか?
160デフォルトの名無しさん (ワッチョイ 8669-zwFU)
2019/06/28(金) 16:42:37.66ID:BZSAOrWQ0 疑いだしたらきりがないけど
>このような感じのコード
と言ってるあたり、このコードが100%再現する最小コードではない可能性もあるということだろうか?
擬似的に if( cnt++ >= 10) hoge = true; と書いてるけど
実情は割り込みや別スレッドかなんかで hoge を書き換えてたりとかさ
>このような感じのコード
と言ってるあたり、このコードが100%再現する最小コードではない可能性もあるということだろうか?
擬似的に if( cnt++ >= 10) hoge = true; と書いてるけど
実情は割り込みや別スレッドかなんかで hoge を書き換えてたりとかさ
161デフォルトの名無しさん (ワッチョイ 6a85-bYGp)
2019/06/28(金) 17:40:23.39ID:F+VtS9/i0 へんな動きしたらデカい配列作ってスタック破壊してないか疑う。
アセンブラ使てたらショートジャンプで128バイト以上離れてるラベル指定してないかとかも。
16/32bit時代のことですが。
アセンブラ使てたらショートジャンプで128バイト以上離れてるラベル指定してないかとかも。
16/32bit時代のことですが。
162デフォルトの名無しさん (ワッチョイ 6d01-DJN3)
2019/06/28(金) 18:37:17.90ID:tgbP+JHV0 スタック破壊は高確率でリターンアドレス壊して暴走(coreダンプとか例外とか)が発生するので発生しちゃえば案外すぐに分かる。
163デフォルトの名無しさん (ワッチョイ 4ab9-a57L)
2019/06/28(金) 19:29:54.68ID:k4pW0x/X0 ポインタは値と参照どちらですか?
f(&v);みたいにポインタを渡す事を参照渡しと呼ぶのは妥当ですか?
ポインタをインクリメントしたりアドレス計算に使う場合があるから
値っぽい気もしますよね
f(&v);みたいにポインタを渡す事を参照渡しと呼ぶのは妥当ですか?
ポインタをインクリメントしたりアドレス計算に使う場合があるから
値っぽい気もしますよね
164デフォルトの名無しさん (ワッチョイ 4ab9-a57L)
2019/06/28(金) 19:32:57.11ID:k4pW0x/X0 「C言語は数値でアドレス指定してデータにアクセスする能力を持つ言語だ」
と捉えて、ポインタ渡しはあくまで値渡しと捉えるのも妥当そうじゃないですか?
と捉えて、ポインタ渡しはあくまで値渡しと捉えるのも妥当そうじゃないですか?
165デフォルトの名無しさん (ワッチョイ 6d01-zwFU)
2019/06/28(金) 19:41:54.17ID:gZBVzR2k0 そういう認識ができてるなら十分だな
その値から指し先が示す実体を引っ張ってこれるってだけで
関数のインターフェースとしては値を渡してる
C言語ではできないが
int a = 0;
foo(a);
呼び出した結果 a の値が書き換わって戻ってくる
っていう渡り方があって、そっちを参照渡しって呼ぶし
その値から指し先が示す実体を引っ張ってこれるってだけで
関数のインターフェースとしては値を渡してる
C言語ではできないが
int a = 0;
foo(a);
呼び出した結果 a の値が書き換わって戻ってくる
っていう渡り方があって、そっちを参照渡しって呼ぶし
166デフォルトの名無しさん (ワッチョイ 6d01-3EWo)
2019/06/28(金) 20:38:41.57ID:TwLtdi9D0 「C言語に参照渡しは無い」という理解でよくね?
167デフォルトの名無しさん (ワッチョイ 6d01-DJN3)
2019/06/28(金) 20:56:34.47ID:tgbP+JHV0 そういう意味では全ての言語は参照または値を表記の違いこそあれ何かの値を渡してるわな。
「参照のための値(アドレス)を渡している」という意味において、C言語もまた参照渡しのある言語になるんじゃない?
「参照のための値(アドレス)を渡している」という意味において、C言語もまた参照渡しのある言語になるんじゃない?
168デフォルトの名無しさん (アウアウエー Sab2-w2nb)
2019/06/28(金) 21:07:11.36ID:1Q6Ak4jma 違います。
169デフォルトの名無しさん (アウアウウー Sa11-jhwL)
2019/06/28(金) 21:13:05.54ID:ASw3jrNxa Cに参照はないが、ポインタ経由のアクセスを参照だと脳内定義するなら参照ということにはなる。
ただC++は参照もポインタ経由のアクセスも両方使えるようになってるので後でC++やろうとすると混乱するかもね。
ただC++は参照もポインタ経由のアクセスも両方使えるようになってるので後でC++やろうとすると混乱するかもね。
170デフォルトの名無しさん (スプッッ Sdca-73lR)
2019/06/28(金) 21:16:07.88ID:lanM6mt5d 先輩「〜〜」
新人「なるほど、つまり参照渡しですね」
先輩「違います」
新人「オオ…オ……オ……」
そして新人はIT業界を去ったのであった
新人「なるほど、つまり参照渡しですね」
先輩「違います」
新人「オオ…オ……オ……」
そして新人はIT業界を去ったのであった
171デフォルトの名無しさん (ワッチョイ 6d01-3EWo)
2019/06/28(金) 21:38:39.85ID:TwLtdi9D0 ポインタを特別扱いする必要とか無いがな
172デフォルトの名無しさん (ワッチョイ 8663-3te8)
2019/06/28(金) 21:38:47.78ID:DEsb2BLF0 C言語の場合は素直にアドレス渡しで良いと思う
紛らわしい用語使うとかえって混乱するだけ
紛らわしい用語使うとかえって混乱するだけ
173デフォルトの名無しさん (ワッチョイ 158f-8t5v)
2019/06/28(金) 22:56:11.75ID:K80D90id0 先輩「〜〜」
新人「なるほど、つまり参照渡しですね」
先輩「まあそうだね」
新人「なるほど理解しました」
優しい世界
新人「なるほど、つまり参照渡しですね」
先輩「まあそうだね」
新人「なるほど理解しました」
優しい世界
174デフォルトの名無しさん (ワッチョイ 6d01-3EWo)
2019/06/28(金) 23:31:41.66ID:TwLtdi9D0 そして姑息な優しさによりC++の参照で混乱する
175デフォルトの名無しさん (ワッチョイ ca79-5hf/)
2019/06/29(土) 00:30:28.54ID:kzB3RaMy0 C++なんてクソ言語は回避すればいい
176デフォルトの名無しさん (ワッチョイ 158f-8t5v)
2019/06/29(土) 00:57:44.40ID:CfES0TXk0 姑息じゃない先輩「〜〜」
新人「なるほど、つまり参照渡しですね」
姑息じゃない先輩「まあそうだね」
新人「なるほど理解しました」
姑息じゃない先輩「でもC++の時は注意が必要だよ。その時にまた質問してね。」
素晴らしい先輩
新人「なるほど、つまり参照渡しですね」
姑息じゃない先輩「まあそうだね」
新人「なるほど理解しました」
姑息じゃない先輩「でもC++の時は注意が必要だよ。その時にまた質問してね。」
素晴らしい先輩
177デフォルトの名無しさん (ワッチョイ 3e02-bYGp)
2019/06/29(土) 01:04:38.27ID:k/WM/TXw0 Java は参照の筈なのにある日 NullPointerException を見て愕然とする。
178デフォルトの名無しさん (ワッチョイ 2d7b-0Px/)
2019/06/29(土) 07:27:30.85ID:HFXZY0WT0 NullPointerException を見て愕然
「ぬるぽ」を見ると「ガッ!」と返されることの由来。
「ぬるぽ」を見ると「ガッ!」と返されることの由来。
179デフォルトの名無しさん (ワッチョイ 6a85-bYGp)
2019/06/29(土) 17:54:21.19ID:8z7l0ZZs0 ポインタ?BASICのPEEK、POKE、CALL、DEF FN使ったことあるなら(ry
180デフォルトの名無しさん (ワッチョイ 6d01-DJN3)
2019/06/29(土) 18:15:02.25ID:Ec0dmaS10 >>179
DEF FNが全てのBASICにあると思うなよ。
DEF FNが全てのBASICにあると思うなよ。
181デフォルトの名無しさん (ワッチョイ 2501-3te8)
2019/06/29(土) 18:24:39.84ID:0fRKmc/o0 I/Oの何十ページもあるダンプリスト打ち込んでたなあ・・・
182デフォルトの名無しさん (ラクペッ MM15-l1Qe)
2019/06/29(土) 18:28:11.52ID:QwBwV953M かつて皆一度は通ってきた道
183デフォルトの名無しさん (ワッチョイ 4ab9-a57L)
2019/06/29(土) 18:58:28.75ID:SkCg/0zJ0 デバドラを作った事がないんだけど
C言語で作ったとして、
CPUやOSの違いに対してクロスプラットフォームなソースコードを作れるものなの?
C言語で作ったとして、
CPUやOSの違いに対してクロスプラットフォームなソースコードを作れるものなの?
184デフォルトの名無しさん (ワッチョイ 9df6-bYGp)
2019/06/29(土) 19:11:10.87ID:KCwWGOZi0185デフォルトの名無しさん (ワッチョイ 5d52-3te8)
2019/06/29(土) 19:12:21.23ID:VF6wNxfU0 クロスプラットフォームなデバイスドライバなんて見たことが無いんだけど存在するの?
デバイスにもよるんだろうけどインストーラが分けてあるイメージある
デバイスにもよるんだろうけどインストーラが分けてあるイメージある
186デフォルトの名無しさん (ワッチョイ 8663-3te8)
2019/06/29(土) 19:15:54.19ID:jvYtCUwd0 この話題に付いてこれるのは50代より上
187デフォルトの名無しさん (ワッチョイ 4ab9-a57L)
2019/06/29(土) 19:24:10.90ID:SkCg/0zJ0 実行ファイルは環境毎でも
ソースコードは共通化されてるかもしれない
ソースコードは共通化されてるかもしれない
188デフォルトの名無しさん (ワッチョイ 2501-3te8)
2019/06/29(土) 19:45:16.95ID:0fRKmc/o0 早川電機ってw
何歳なんだよw
何歳なんだよw
189デフォルトの名無しさん (ワッチョイ 6d01-DJN3)
2019/06/29(土) 19:46:57.93ID:Ec0dmaS10190デフォルトの名無しさん (アウアウエー Sab2-w2nb)
2019/06/29(土) 19:57:31.13ID:dqvciFo5a 同じデバイスに対しては同じ様なプログラムになると思うぞ。
191デフォルトの名無しさん (ワッチョイ 4ab9-a57L)
2019/06/29(土) 20:13:31.33ID:SkCg/0zJ0 >>189
CPUの違いだけならクロスプラットフォームにできる?
CPUの違いだけならクロスプラットフォームにできる?
192デフォルトの名無しさん (ワッチョイ 5d52-yAi2)
2019/06/29(土) 20:17:37.78ID:VF6wNxfU0 クロスプラットフォームの意味履き違えてない?
193デフォルトの名無しさん (ワッチョイ 8663-3te8)
2019/06/29(土) 20:26:03.44ID:jvYtCUwd0 東京通信工業なんて会社、知らないだろうな
194デフォルトの名無しさん (ワッチョイ 4ab9-a57L)
2019/06/29(土) 20:33:24.22ID:SkCg/0zJ0 間違えてはいないが単にその言葉が曖昧だ。
ifdef等を使わずにCPUの違いに対処できるCコードは書けるか?
ifdef等を使わずにCPUの違いに対処できるCコードは書けるか?
195デフォルトの名無しさん (ワッチョイ 6d01-DJN3)
2019/06/29(土) 20:51:37.84ID:Ec0dmaS10196デフォルトの名無しさん (アウアウエー Sab2-w2nb)
2019/06/29(土) 20:51:42.07ID:dqvciFo5a197デフォルトの名無しさん (ワッチョイ 3e02-GzKe)
2019/06/29(土) 21:58:02.57ID:k/WM/TXw0 >>195
Linux は結構共通になってない?ものにもよるか。
Linux は結構共通になってない?ものにもよるか。
198デフォルトの名無しさん (ワッチョイ c1d2-Eaty)
2019/06/30(日) 21:20:05.21ID:28buo1qB0 PC-98、TWONS、AT互換機でDOSのファンクションコールしか使わないなら同じexeファイルが使えたと思った。
199デフォルトの名無しさん (アウアウカー Sa05-w2nb)
2019/07/01(月) 00:10:17.16ID:cUStBYS8a MSX-DOSとかCP/Mのプログラム動いたぜ。
Z80だし当たり前なんだけど驚いた。
Z80だし当たり前なんだけど驚いた。
200デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/04(木) 18:46:50.22ID:RufwSseDM hoge.hというヘッダーファイルがシステムで使用可能ならインクルードして、ないならローカルに用意したものをインクルードしたい時はどうすればいいですか?
イメージはこんな感じです
if (exists("hoge.h")):
#include<hoge.h>
else:
#include"./src/hoge.h"
イメージはこんな感じです
if (exists("hoge.h")):
#include<hoge.h>
else:
#include"./src/hoge.h"
201デフォルトの名無しさん (ワッチョイ 23b3-M+cn)
2019/07/04(木) 18:59:45.02ID:ead2oXvp0 >>200
#if EXISTS_HOGE
#include <hoge.h>
#else
#include "./src/hoge.h"
#endif
コンパイラオプションで-DEXISTS_HOGE=1を指定するとシステムのヘッダをインクルードできる
これの欠点は手動で指定する必要があること
自動でやりたいならautotoolとかcmakeを使うしかない
#if EXISTS_HOGE
#include <hoge.h>
#else
#include "./src/hoge.h"
#endif
コンパイラオプションで-DEXISTS_HOGE=1を指定するとシステムのヘッダをインクルードできる
これの欠点は手動で指定する必要があること
自動でやりたいならautotoolとかcmakeを使うしかない
202デフォルトの名無しさん (ワッチョイ 2301-apWJ)
2019/07/04(木) 19:38:05.76ID:j+BKfkH80 >>200
includeパスの優先順位を利用するのじゃダメなの?
includeパスの優先順位を利用するのじゃダメなの?
203デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/04(木) 19:40:09.58ID:CiYpNsgja 自分の hage.h を用意しとけば。名前何でもいいけど。
で、本物のhageのインクルードガードのマクロ定義をチェックすればいい。マクロがあればの話だけど。
で、本物のhageのインクルードガードのマクロ定義をチェックすればいい。マクロがあればの話だけど。
204デフォルトの名無しさん (スフッ Sd1f-tewH)
2019/07/04(木) 20:01:31.43ID:DFmBoT0+d こっそり__has_include使えたりしないの?
205デフォルトの名無しさん (ワッチョイ 038f-Tdf6)
2019/07/04(木) 22:38:29.59ID:YXLsgD0T0 cmake便利だよな。これを覚えたせいで仕事を簡単に家に持って帰れるようになってしまったよ……
206デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/04(木) 23:09:00.36ID:Dgm46w9S0 社畜w
207デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/05(金) 07:37:58.54ID:gYSYJWLY0 ハッカータイプの人はそれが普通なんだよ
パンピーには解らないし解ってもらいたいとも思わない
パンピーには解らないし解ってもらいたいとも思わない
208デフォルトの名無しさん (アウアウウー Sa67-apWJ)
2019/07/05(金) 07:39:43.05ID:RJCpPwwqa いわゆる暇プロタイプの人だな。
209デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/05(金) 10:42:30.79ID:/9SntML6a タクシー運転手の趣味がドライブみたいなものだな。
210デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/05(金) 10:48:27.91ID:V1OP8/TU0 会社でマルウェア製造していたのか
211デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/05(金) 12:21:58.01ID:/9SntML6a 四角くてもマルウェア
212デフォルトの名無しさん (ドコグロ MMdf-hlKr)
2019/07/05(金) 19:35:27.70ID:cg54bwGhM 山田く~ん
213デフォルトの名無しさん (アウアウエー Sadf-T0Pq)
2019/07/07(日) 01:12:52.69ID:ibboI0jYa マ板化してる・・・
215デフォルトの名無しさん (ラクペッ MM47-8Out)
2019/07/07(日) 13:52:06.12ID:rNUlAIMGM *p[]
(*p) []
**p
*(*p)
(*p) []
**p
*(*p)
216デフォルトの名無しさん (ワッチョイ ffc5-rgZK)
2019/07/07(日) 16:31:13.26ID:hqXlVeni0 >>214
ポインタは変数で4バイトのメモリ領域で、
配列は連続したメモリ領域?
int arr1[] = {1,2};
int arr2[] = {3,4};
arr1 = arr2;
がエラーになるから配列はポインタ変数とは明確に区別されてるみたいだが
ポインタは変数で4バイトのメモリ領域で、
配列は連続したメモリ領域?
int arr1[] = {1,2};
int arr2[] = {3,4};
arr1 = arr2;
がエラーになるから配列はポインタ変数とは明確に区別されてるみたいだが
217蟻人間 ◆T6xkBnTXz7B0 (スププ Sd1f-dIxF)
2019/07/07(日) 16:40:40.99ID:0lH1eUtNd 16-bitのMS-DOSの時代だと2バイトのポインタがあったし、64ビットのCPUなら、8バイトもあり得る。
218デフォルトの名無しさん (ワッチョイ c301-8j+F)
2019/07/07(日) 16:45:42.38ID:YcHC3knN0 また値渡し、ポインタ渡し、参照渡しは〜ってやるのか?
219デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/07(日) 16:52:42.60ID:21BbIGV/0 > *(*p)
ああ、こいつ解ってないな
ああ、こいつ解ってないな
220デフォルトの名無しさん (ワッチョイ 6f02-ttyE)
2019/07/07(日) 18:03:14.45ID:XjejoYnQ0 >>219
それ顔文字っぽいよね。
それ顔文字っぽいよね。
221デフォルトの名無しさん (ワッチョイ 6f02-ttyE)
2019/07/07(日) 18:04:40.15ID:XjejoYnQ0 >>216
うちのポインタは8バイトだ。
うちのポインタは8バイトだ。
222デフォルトの名無しさん (ワッチョイ ff79-rgZK)
2019/07/07(日) 19:09:15.76ID:bN7H9WWH0 配列はポインタのシンタックスシュガーでしかない
ポインタは何でも許されるが配列は操作が簡略化と同時に制限されてる
ポインタは何でも許されるが配列は操作が簡略化と同時に制限されてる
224デフォルトの名無しさん (ワッチョイ ff79-rgZK)
2019/07/07(日) 19:32:54.23ID:bN7H9WWH0 >>223
配列は宣言した瞬間に領域が確保されてるだろ
配列は宣言した瞬間に領域が確保されてるだろ
225デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/07(日) 19:33:00.70ID:SGQz+b0c0 >>222
x[-1]、これも許されるんだよな
x[-1]、これも許されるんだよな
226デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/07(日) 20:07:07.70ID:OUCQisjNM int a[1];
と
int *a;
a=(int *)malloc(sizeof(int));
の違いって何?
と
int *a;
a=(int *)malloc(sizeof(int));
の違いって何?
227蟻人間 ◆T6xkBnTXz7B0 (スププ Sd1f-dIxF)
2019/07/07(日) 20:12:27.77ID:0lH1eUtNd >>226
前者はスタックか静的領域に確保される。後者はヒープに確保される。前者はスコープを抜けると自動で解放。後者は解放しないとメモリーリークする。
前者はスタックか静的領域に確保される。後者はヒープに確保される。前者はスコープを抜けると自動で解放。後者は解放しないとメモリーリークする。
228デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/07(日) 20:15:53.10ID:OUCQisjNM229デフォルトの名無しさん (ワッチョイ ff79-rgZK)
2019/07/07(日) 20:17:35.62ID:bN7H9WWH0 >>228
寧ろ配列で済むのにポインタを使う意味がないぞ
寧ろ配列で済むのにポインタを使う意味がないぞ
230蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ c301-dIxF)
2019/07/07(日) 20:18:55.18ID:JhpdhjN90 >>228
繰り返し(iteration)の処理で連続データを処理・制御するときに配列がないと困る。
繰り返し(iteration)の処理で連続データを処理・制御するときに配列がないと困る。
231デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/07(日) 20:29:34.92ID:OUCQisjNM >>229-230
int a[3];
for(int i=0;i<3;i++) a[i] = 0;
int *a;
a=(int *)malloc(sizeof(int * 3));
for(int i=0;i<3;i++) *(a+i) = 0;
これとこれだと違うの?
ポインタだとchar型の時とか文字列代入出来るし
上位互換な気がするんだけど。
int a[3];
for(int i=0;i<3;i++) a[i] = 0;
int *a;
a=(int *)malloc(sizeof(int * 3));
for(int i=0;i<3;i++) *(a+i) = 0;
これとこれだと違うの?
ポインタだとchar型の時とか文字列代入出来るし
上位互換な気がするんだけど。
232蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ c301-dIxF)
2019/07/07(日) 20:32:06.26ID:JhpdhjN90233蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ c301-dIxF)
2019/07/07(日) 20:34:52.90ID:JhpdhjN90 配列のサイズが決まるのはコンパイル時だ。
234デフォルトの名無しさん (ワッチョイ ff79-rgZK)
2019/07/07(日) 20:36:22.20ID:bN7H9WWH0235デフォルトの名無しさん (ワッチョイ 6352-nrJI)
2019/07/07(日) 20:36:48.46ID:HZba7DSz0236デフォルトの名無しさん (ワッチョイ 6352-nrJI)
2019/07/07(日) 20:37:18.16ID:HZba7DSz0 かぶった
237デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/07(日) 20:50:54.62ID:OUCQisjNM じゃあ配列は、ポインタの一部機能を制限して使いやすさの向上を図ったものという認識でいいの?
それとも生まれも育ちも全く別の概念?
何か、今やってるcの教材が、まず最初に配列を使ってプログラム書いて、
次の章でポインタ出てきて、今まで配列使って書いた奴をポインタで書き変えろみたいな例題ばっかりだから
だったら最初から配列いらなくない?と思ってしまいました。
それとも生まれも育ちも全く別の概念?
何か、今やってるcの教材が、まず最初に配列を使ってプログラム書いて、
次の章でポインタ出てきて、今まで配列使って書いた奴をポインタで書き変えろみたいな例題ばっかりだから
だったら最初から配列いらなくない?と思ってしまいました。
238蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ c301-dIxF)
2019/07/07(日) 20:52:43.83ID:JhpdhjN90 実用的なプログラム書いてたら、そのうちわかる。心配要らない。
239デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/07(日) 21:00:11.30ID:OUCQisjNM 分かりました。unionもわざわざこんなの使わずstruct使えばよくねって思うけどそういうもんだと今は思っときます。
240デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/07(日) 22:02:44.50ID:o4vR1s03a >>237
むしろ、何故ポインタが不要だと思わんのか謎だわ
むしろ、何故ポインタが不要だと思わんのか謎だわ
241デフォルトの名無しさん (ワッチョイ 7f77-tOvn)
2019/07/07(日) 22:15:20.04ID:2f8BNWqD0 なぜopenとfopenの二つのファイルアクセス手段が用意されているのか。
243デフォルトの名無しさん (ワッチョイ 6f02-ttyE)
2019/07/07(日) 23:10:44.83ID:XjejoYnQ0 >>242
バッファっリングしてくれるとか、fprintf()もあったりしてテキストをフォーマットして出力するのも楽というのがある。
バッファっリングしてくれるとか、fprintf()もあったりしてテキストをフォーマットして出力するのも楽というのがある。
244デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/07(日) 23:15:22.66ID:o4vR1s03a Cライブラリとしてはfopenしかないわけだけど、正直あんまり便利じゃないよな。
>>243
バッファリングはね…バッファリングは今は大部分 OS が抱いているものなんじゃないかな…アプリケーションが各々のユーザーランドに抱いていてメリットがあるのかな…
バッファリングはね…バッファリングは今は大部分 OS が抱いているものなんじゃないかな…アプリケーションが各々のユーザーランドに抱いていてメリットがあるのかな…
246デフォルトの名無しさん (ワッチョイ 6f02-ttyE)
2019/07/07(日) 23:34:13.80ID:XjejoYnQ0 >>245
ま、そうだけどね。Cってそういう今時のちゃんとしたOSのないところや完全にOSなし環境用のプログラム作るのにも使われるし、ああいうライブラリはあってもいいと思う。
まあしかしちょっと古くなった感はあるのでリニューアルしても良いんじゃないかとは思うけどね。てか、最低でも標準ライブラリなのにセキュリティーホール作ってしまうようなのは廃止した方が良いよな。
ま、そうだけどね。Cってそういう今時のちゃんとしたOSのないところや完全にOSなし環境用のプログラム作るのにも使われるし、ああいうライブラリはあってもいいと思う。
まあしかしちょっと古くなった感はあるのでリニューアルしても良いんじゃないかとは思うけどね。てか、最低でも標準ライブラリなのにセキュリティーホール作ってしまうようなのは廃止した方が良いよな。
247デフォルトの名無しさん (スププ Sd1f-tewH)
2019/07/07(日) 23:42:46.95ID:sq3gNEgUd システムコール自体相当重いから、OS呼び出す回数減らすためのバッファリングだろ
248デフォルトの名無しさん (ワッチョイ c301-8j+F)
2019/07/07(日) 23:47:08.94ID:YcHC3knN0 入出力バッファリングしてくれるファイルシステムなんてあるか?
ジャーナリングと勘違いしてるんだろ
ジャーナリングと勘違いしてるんだろ
249デフォルトの名無しさん (スププ Sd1f-tewH)
2019/07/07(日) 23:54:40.74ID:sq3gNEgUd しない方が珍しくね?
writeしたらディスク書き込み完了するまで次がブロックするとか?
writeしたらディスク書き込み完了するまで次がブロックするとか?
250デフォルトの名無しさん (ワッチョイ c301-tUur)
2019/07/07(日) 23:59:57.04ID:YcHC3knN0 それジャーナル制御の話だろ
251デフォルトの名無しさん (ワッチョイ 7f77-tOvn)
2019/07/08(月) 00:13:01.27ID:cSAl/tEC0 バッファリングとキャッシュの区別が…。
252デフォルトの名無しさん (ワッチョイ c301-8j+F)
2019/07/08(月) 00:15:59.34ID:+tWapxmU0253デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/08(月) 00:21:05.88ID:G56xs+BGM254デフォルトの名無しさん (アウアウカー Sac7-lEBl)
2019/07/08(月) 00:29:20.86ID:EniIIYRYa255デフォルトの名無しさん (ワッチョイ 6f02-ttyE)
2019/07/08(月) 00:44:01.80ID:YBWHLZTU0 >>253
一応初期化の時だけ char s[] = "..."; って書き方できるけどね。これは初期化だけの特別な書き方だな。
一応初期化の時だけ char s[] = "..."; って書き方できるけどね。これは初期化だけの特別な書き方だな。
256デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/08(月) 01:20:48.92ID:6nQUGxHg0 OSによっては遅延書き込みってしているだろう
257デフォルトの名無しさん (ワッチョイ 6f02-ttyE)
2019/07/08(月) 02:05:54.23ID:YBWHLZTU0 やってるな。外付けのHDD付けた時なんかはするかしないか設定できたりして。
258デフォルトの名無しさん (ワッチョイ 13d2-mVFY)
2019/07/08(月) 08:34:21.82ID:IKtCR6xL0 DOS時代、ディスクキャッシュはドライバーが必要だったな。
259デフォルトの名無しさん (スフッ Sd1f-AH8H)
2019/07/08(月) 08:57:53.53ID:YymrlAAVd str[9]="おはよう"
str[9]={'お','は','よ','う'}
こうやってまとめて配列に日本語を入れるのは出来るんだけど「お」、「は」、「よ」、「う」と一文字ずつ入れることって出来ますか?
英語ならstr[0]=…、str[1]=…って済むけど
str[9]={'お','は','よ','う'}
こうやってまとめて配列に日本語を入れるのは出来るんだけど「お」、「は」、「よ」、「う」と一文字ずつ入れることって出来ますか?
英語ならstr[0]=…、str[1]=…って済むけど
260デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/08(月) 09:43:06.34ID:tzeJFuHla >>259
> こうやってまとめて配列に日本語を入れるのは出来るんだけど
え?できる?
>「お」、「は」、「よ」、「う」と一文字ずつ入れることって出来ますか?
wchar_t 型を使ってL付けたらできないか?
> こうやってまとめて配列に日本語を入れるのは出来るんだけど
え?できる?
>「お」、「は」、「よ」、「う」と一文字ずつ入れることって出来ますか?
wchar_t 型を使ってL付けたらできないか?
261デフォルトの名無しさん (ワッチョイ cf69-BEQt)
2019/07/08(月) 09:53:54.58ID:jiAfHW5M0 要素数を明示してるので、文中の代入ではなく、初期化のときの話だろうとは予測できるが
「入れる」というのは、代入を連想させるので、うまい言い回しではないかもね
「入れる」というのは、代入を連想させるので、うまい言い回しではないかもね
262デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/08(月) 11:00:59.71ID:sWBK4Oik0263デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/08(月) 11:23:23.17ID:tzeJFuHla264デフォルトの名無しさん (ワッチョイ 8f7c-rgZK)
2019/07/08(月) 11:25:22.35ID:Y+Xu67y40265デフォルトの名無しさん (ワッチョイ 13d2-mVFY)
2019/07/08(月) 11:45:28.78ID:IKtCR6xL0 >259
>str[9]={'お','は','よ','う'}
マルチバイト文字をこう書く時はエンディアンにも気をつけないとね。
>str[9]={'お','は','よ','う'}
マルチバイト文字をこう書く時はエンディアンにも気をつけないとね。
266デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/08(月) 12:17:44.27ID:tzeJFuHla >>265
てか、それできる?
てか、それできる?
267デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/08(月) 12:23:54.16ID:sWBK4Oik0268デフォルトの名無しさん (ワッチョイ ffa5-3Ys2)
2019/07/08(月) 12:29:40.10ID:SgFxP6hn0 思ってるって……
じゃK&Rにはwhyは書いてないってこと?
なんでお前の脳みその中身を当てこしなきゃいけねーんだ
バカかこいつ?
じゃK&Rにはwhyは書いてないってこと?
なんでお前の脳みその中身を当てこしなきゃいけねーんだ
バカかこいつ?
269デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/08(月) 12:30:19.48ID:sWBK4Oik0270デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/08(月) 12:31:09.46ID:sWBK4Oik0271デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/08(月) 12:31:47.98ID:sWBK4Oik0272デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/08(月) 13:00:33.95ID:tzeJFuHla >>267
なるほど。
なるほど。
273デフォルトの名無しさん (ワッチョイ 13d2-mVFY)
2019/07/08(月) 13:43:50.72ID:IKtCR6xL0 >266
どのあたりに疑念を持ってるの?
どのあたりに疑念を持ってるの?
274デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/08(月) 13:58:51.22ID:tzeJFuHla >>273
'あ' みたいなのは char じゃないから少なくとも警告出そうな感じするんだが。
'あ' みたいなのは char じゃないから少なくとも警告出そうな感じするんだが。
275デフォルトの名無しさん (ワッチョイ 13d2-mVFY)
2019/07/08(月) 14:09:16.87ID:IKtCR6xL0 int Code='ABCD';
なんて書き方できるから文字列はOK。(Code=0x41424344; と解釈)
全角文字の解釈はコンパイラ次第。unicodeやutf-8対応なら問題ないと思う。
S-JISはよく"\"が含まれる文字で誤作動起こすけど。
なんて書き方できるから文字列はOK。(Code=0x41424344; と解釈)
全角文字の解釈はコンパイラ次第。unicodeやutf-8対応なら問題ないと思う。
S-JISはよく"\"が含まれる文字で誤作動起こすけど。
276デフォルトの名無しさん (ワッチョイ cf69-BEQt)
2019/07/08(月) 14:54:14.01ID:jiAfHW5M0 C99 6.4.4.4 Character constants で
character-constant:
'c-char-sequence'
L'c-char-sequence'
c-char-sequence:
c-char
c-char-sequence c-char
こうなってて文法的には 'ABCDEF' は許されるんだな ちょっと意外
character-constant:
'c-char-sequence'
L'c-char-sequence'
c-char-sequence:
c-char
c-char-sequence c-char
こうなってて文法的には 'ABCDEF' は許されるんだな ちょっと意外
277デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/08(月) 15:31:05.17ID:sWBK4Oik0278デフォルトの名無しさん (ワッチョイ c301-mE9d)
2019/07/08(月) 15:37:58.06ID:u+KjwOdz0 処理系定義の動作だから移植性は落ちるよね
279デフォルトの名無しさん (ワッチョイ 2301-r2oz)
2019/07/08(月) 20:12:45.44ID:84rxMJ1M0 文字定数は
Cではint型
C++ではchar型
Cではint型
C++ではchar型
280デフォルトの名無しさん (ワッチョイ ffc5-rgZK)
2019/07/08(月) 20:54:00.78ID:ibRWBgM50 int *ptr;
↑なんですが、「int型のポインタ変数ptr」、それとも「int *型のポインタ変数ptr」のどちらでしょうか?
↑なんですが、「int型のポインタ変数ptr」、それとも「int *型のポインタ変数ptr」のどちらでしょうか?
281デフォルトの名無しさん (ワッチョイ ff79-rgZK)
2019/07/08(月) 20:55:50.12ID:Fr0SEB8b0 int*型の変数
282デフォルトの名無しさん (ワッチョイ ffc5-rgZK)
2019/07/08(月) 21:09:00.76ID:ibRWBgM50 >>281
読み方としては
int (イント) * (ポインタ) 型の変数
でしょうか
「ポインタ変数」と言った場合は「* (ポインタ)変数」という捉え方でいいのでしょうか?
「ポインタ」と言った場合に「*」を指すのは普通ですか?
読み方としては
int (イント) * (ポインタ) 型の変数
でしょうか
「ポインタ変数」と言った場合は「* (ポインタ)変数」という捉え方でいいのでしょうか?
「ポインタ」と言った場合に「*」を指すのは普通ですか?
>>282
好きなように把握すればよい、しかし int * の使われ方は決まっているのだから、それがすんなりできるかどうかが問題
好きなように把握すればよい、しかし int * の使われ方は決まっているのだから、それがすんなりできるかどうかが問題
284デフォルトの名無しさん (アウアウカー Sac7-lEBl)
2019/07/08(月) 21:24:04.62ID:/2nq94DTa pointer to int
285デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/08(月) 21:42:19.26ID:prK3AyGza >>280
Cの場合は変数に*がくっついた形で宣言されていると考えた方が良い。というのは int *a, b; と書いた場合に a は int * 型だが b は int 型になるからだ。
Cの場合は変数に*がくっついた形で宣言されていると考えた方が良い。というのは int *a, b; と書いた場合に a は int * 型だが b は int 型になるからだ。
286デフォルトの名無しさん (ワッチョイ ffc5-rgZK)
2019/07/08(月) 22:54:53.21ID:ibRWBgM50 なんとなくわかりました
ありがとうございました
ありがとうございました
287280 (ワッチョイ ffc5-rgZK)
2019/07/09(火) 00:31:35.20ID:L+Vy/ftS0 規格書には
pointer to a character type
pointers to structure types
という文が頻繁に出てきますね
日本語で言ったら「char型へのポインタ」のほうが「charのポインタ型」より正しい気がします
>>284さんのpointer to intは日本語なら「int型へのポインタ」ですね
と思ったんですが規格書には
pointer type
も出てくるので、どっちでもいいということでしょうか
つまり「char型へのポインタ」=「charのポインタ型」ということになりますが
pointer to a character type
pointers to structure types
という文が頻繁に出てきますね
日本語で言ったら「char型へのポインタ」のほうが「charのポインタ型」より正しい気がします
>>284さんのpointer to intは日本語なら「int型へのポインタ」ですね
と思ったんですが規格書には
pointer type
も出てくるので、どっちでもいいということでしょうか
つまり「char型へのポインタ」=「charのポインタ型」ということになりますが
288デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/09(火) 02:08:12.29ID:Mm2yqLXca 変数の宣言と型の宣言が同じ形というCの事情もありそうだが、そこは曖昧だと思うね。
アップキャストしたら単にポインタだし、ポインタ型と言う場面もあるだろう。
これいいね
https://cdecl.org/
アップキャストしたら単にポインタだし、ポインタ型と言う場面もあるだろう。
これいいね
https://cdecl.org/
289デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/09(火) 09:14:08.91ID:gdYXIa6pa typedef char *pchar; とすると pchar 型は「charのポインタ型」というとにはなる。
290280 (ワッチョイ ffc5-rgZK)
2019/07/09(火) 11:14:54.62ID:L+Vy/ftS0 ということはどっちでもいいんですね
291デフォルトの名無しさん (ワッチョイ 13d2-mVFY)
2019/07/09(火) 11:27:52.60ID:knKJba5J0 気にしたことが無いくらいどうでもいい話。
292デフォルトの名無しさん (アウアウカー Sac7-lEBl)
2019/07/09(火) 12:21:07.04ID:J4x6YR7aa 引数のvoidが一体なんなのか考える方が有意義
293デフォルトの名無しさん (ワッチョイ c301-mE9d)
2019/07/09(火) 12:41:16.87ID:jbK1WB2u0 引数なしの関数を書くときはvoidと書く
以上
以上
294デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/09(火) 12:59:36.67ID:PyDbCO5q0 voidって引数じゃないの?
295デフォルトの名無しさん (ワッチョイ c301-mE9d)
2019/07/09(火) 15:08:36.62ID:jbK1WB2u0 引数に予約語使えるの?
296デフォルトの名無しさん (ワッチョイ cf69-BEQt)
2019/07/09(火) 15:44:50.86ID:+qcz+46H0 some_type foo() と戻りがあるのに、その戻りを捨てる意図で
(void)foo(); と呼び出すコードを見たことがあるような気がするが C++ かもしれん
最適化の際にうまいことしてくれるのを期待してるのかしら
(void)foo(); と呼び出すコードを見たことがあるような気がするが C++ かもしれん
最適化の際にうまいことしてくれるのを期待してるのかしら
297デフォルトの名無しさん (ワッチョイ 7f52-KlLC)
2019/07/09(火) 15:55:38.40ID:td6qAd7k0 >>296
コンパイラかコードチェッカーのwarning抑止のためじゃないかな
コンパイラかコードチェッカーのwarning抑止のためじゃないかな
298デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/09(火) 16:02:30.30ID:+dEKq4+ba Cでも使える。
一度も使ってない引数変数があるとか、関数の戻り値を使っとらんとかで警告が出る場合にくっつけるのが主だと思う。
一度も使ってない引数変数があるとか、関数の戻り値を使っとらんとかで警告が出る場合にくっつけるのが主だと思う。
299デフォルトの名無しさん (ワッチョイ cf02-4kw8)
2019/07/09(火) 16:03:09.93ID:NP6oYl9g0 > 引数なしの関数を書くときはvoidと書く
プロトタイプじゃなかったっけ
プロトタイプじゃなかったっけ
300デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/09(火) 16:07:01.41ID:gdYXIa6pa >>299
プロトタイプと違ったらエラーになる。
プロトタイプと違ったらエラーになる。
301デフォルトの名無しさん (ワッチョイ cf69-BEQt)
2019/07/09(火) 16:20:41.31ID:+qcz+46H0 >>297-298
なるほど、警告避けかー
引数に対してのは
callback 関数として、引数の型&数は限定されてるけど
実装時には一部の引数を使わずに実装できちゃうときに発生しそうね
void foo(int arg1, int arg2)
{
/* 色々書くけど arg2 は使わない: callback 関数の都合で引数の型と数は変えられん */
(void)arg2;
}
なるほど、警告避けかー
引数に対してのは
callback 関数として、引数の型&数は限定されてるけど
実装時には一部の引数を使わずに実装できちゃうときに発生しそうね
void foo(int arg1, int arg2)
{
/* 色々書くけど arg2 は使わない: callback 関数の都合で引数の型と数は変えられん */
(void)arg2;
}
302デフォルトの名無しさん (ワッチョイ cf02-4kw8)
2019/07/09(火) 17:10:50.55ID:NP6oYl9g0303デフォルトの名無しさん (ワッチョイ cf02-4kw8)
2019/07/09(火) 17:12:50.99ID:NP6oYl9g0 アンカミスった >>300
304デフォルトの名無しさん (ワッチョイ cf69-BEQt)
2019/07/09(火) 17:17:21.63ID:+qcz+46H0305デフォルトの名無しさん (ワッチョイ c301-mE9d)
2019/07/09(火) 17:26:13.08ID:jbK1WB2u0306デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/09(火) 17:28:26.22ID:PyDbCO5q0 >>302
VCだと
> warning C4255: 'func' : 関数プロトタイプがありません : '()' を '(void)' に変換します。
って警告出て、関数部分の引数を変えてしまってる
VCだと
> warning C4255: 'func' : 関数プロトタイプがありません : '()' を '(void)' に変換します。
って警告出て、関数部分の引数を変えてしまってる
307デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/09(火) 17:41:06.68ID:3UBru1uA0 >>302
おまえさん、自分のところで動作確認してるか? でたらめこくな
おまえさん、自分のところで動作確認してるか? でたらめこくな
308デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/09(火) 17:43:09.00ID:8Y9GhXx/M char *p;
p = "str1";
p = "str2";
こんな風に文字列リテラルのポインタを付け替える時に前の文字列リテラルのメモリ領域を解放するにはどうすればいいの?
p = "str1";
p = "str2";
こんな風に文字列リテラルのポインタを付け替える時に前の文字列リテラルのメモリ領域を解放するにはどうすればいいの?
309デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/09(火) 17:49:15.98ID:PyDbCO5q0 >>308
静的領域に確保しているから解放は無理
静的領域に確保しているから解放は無理
310デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/09(火) 17:59:43.14ID:3UBru1uA0 exit関数を呼び出せば解放できるね
311デフォルトの名無しさん (ワッチョイ cf02-4kw8)
2019/07/09(火) 18:21:06.36ID:NP6oYl9g0 X 3010:2003 では
6.7.5.3 関数宣言子(関数原型を含む)
「並びの中の唯一の項目が void 型で名前のない仮引数であるという特別な場合,関数が仮引数をもたないことを指定する。」
6.9.1 関数定義
typedef int F(void);
F f, g;
int f(void) { /*... */ } // 正
int g() { /*... */ } // 正
という訳で
int func(void); /* prototype */
int func() /* definition */
{
return 0;
}
どこかまちがっているか
6.7.5.3 関数宣言子(関数原型を含む)
「並びの中の唯一の項目が void 型で名前のない仮引数であるという特別な場合,関数が仮引数をもたないことを指定する。」
6.9.1 関数定義
typedef int F(void);
F f, g;
int f(void) { /*... */ } // 正
int g() { /*... */ } // 正
という訳で
int func(void); /* prototype */
int func() /* definition */
{
return 0;
}
どこかまちがっているか
312デフォルトの名無しさん (アウアウクー MM87-yCcC)
2019/07/09(火) 18:28:37.94ID:8Y9GhXx/M313デフォルトの名無しさん (ワッチョイ 0361-mVFY)
2019/07/09(火) 18:36:42.49ID:lRtOoeh80 それは同じ"hoge"のアドレスがロードされるだけ
文字列リテラルのポインタ扱うならconst char *使いなされ
文字列リテラルのポインタ扱うならconst char *使いなされ
314デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/09(火) 18:43:38.45ID:gdYXIa6pa >>312
文字列の定数は静的な領域に作られるだけで実行時に動的に作られたりしないのでそれは問題なし。
文字列の定数は静的な領域に作られるだけで実行時に動的に作られたりしないのでそれは問題なし。
315デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/09(火) 18:46:20.39ID:gdYXIa6pa あ、でも、定数でなくても同じか。単にポインタ代入してるだけだもんな。
316デフォルトの名無しさん (ワッチョイ c301-mE9d)
2019/07/09(火) 18:47:53.66ID:jbK1WB2u0317デフォルトの名無しさん (ワッチョイ 9327-mE9d)
2019/07/09(火) 19:48:16.54ID:YXbnrG+I0318デフォルトの名無しさん (ワッチョイ 63f6-tOvn)
2019/07/09(火) 20:34:43.07ID:3UBru1uA0 >>311
おまえさんは「関数原型を含む」を、「関数原型についてのみ」と脳内変換しているのか?
> int func() /* definition */
これのどこに、void型で名前のない仮引数があるんだ?
おまえさんは「関数原型を含む」を、「関数原型についてのみ」と脳内変換しているのか?
> int func() /* definition */
これのどこに、void型で名前のない仮引数があるんだ?
>>296
それは lint 対策ですよ
それは lint 対策ですよ
320デフォルトの名無しさん (アウアウウー Sa67-j2me)
2019/07/09(火) 22:42:13.74ID:pf5t+DpRa 最近C言語学び始めた者ですが練習がてらトランプのブラック・ジャック的なものを作っています
そこで11以上がでた時10とするという単純なプログラムを書きたいのですがつまづいています。
ご教授頂ければありがたいです
そこで11以上がでた時10とするという単純なプログラムを書きたいのですがつまづいています。
ご教授頂ければありがたいです
321デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/09(火) 23:16:49.68ID:PyDbCO5q0322デフォルトの名無しさん (アウアウウー Sa67-j2me)
2019/07/09(火) 23:46:17.89ID:pf5t+DpRa >>321
一応rand関数というのをつかって1~13までの数をランダムで出すようには組めたのですがそのランダムで出た数が11以上だった時10として扱うというのが組めません
やはり13個全部配列組む方が確実なのでしょうか
一応rand関数というのをつかって1~13までの数をランダムで出すようには組めたのですがそのランダムで出た数が11以上だった時10として扱うというのが組めません
やはり13個全部配列組む方が確実なのでしょうか
323デフォルトの名無しさん (ワッチョイ 7f77-tOvn)
2019/07/09(火) 23:52:36.31ID:khnvGGZh0 ブラックジャックのルール全部適用させようとすると初心者には結構ハードル高いような気がする。
324デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/09(火) 23:54:18.16ID:PyDbCO5q0325デフォルトの名無しさん (アウアウウー Sa67-j2me)
2019/07/09(火) 23:59:20.27ID:pf5t+DpRa >>324
ありがとうございます!早速試して見ます!
ありがとうございます!早速試して見ます!
326デフォルトの名無しさん (アウアウウー Sa67-j2me)
2019/07/10(水) 00:04:27.37ID:YFbFPCAXa >>323
あんまり細かいことはさすがに手が出ないのでとりあえず
・11以上は10として扱う
・21超えたら負け
・1がでたら1か11好きな方を選べる
この3つだけできればとりあえずブラック・ジャックとしてゲームは成り立つかなと考えてます
あんまり細かいことはさすがに手が出ないのでとりあえず
・11以上は10として扱う
・21超えたら負け
・1がでたら1か11好きな方を選べる
この3つだけできればとりあえずブラック・ジャックとしてゲームは成り立つかなと考えてます
327デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/10(水) 00:04:44.92ID:q0FoS2hTa カード52枚作るのがいいと思いますよ。
シャッフルもしがいがある。
配列の要素は見た目(ハートのJとか)を表す構造体。なんだったら実際の値も入れる。Aが微妙ですが。
シャッフルもしがいがある。
配列の要素は見た目(ハートのJとか)を表す構造体。なんだったら実際の値も入れる。Aが微妙ですが。
328デフォルトの名無しさん (アウアウウー Sa67-j2me)
2019/07/10(水) 00:14:34.49ID:YFbFPCAXa >>327
作り始めた時52枚全部定義すれば本格的になるかなと思ったのですが、ご教授お願いしている身で申し訳ないんですけど少し面倒だなと思ってしまいましてorz
やっぱりちゃんとしたブラック・ジャックを作りたいなら52枚全部定義した方がいいですよね
作り始めた時52枚全部定義すれば本格的になるかなと思ったのですが、ご教授お願いしている身で申し訳ないんですけど少し面倒だなと思ってしまいましてorz
やっぱりちゃんとしたブラック・ジャックを作りたいなら52枚全部定義した方がいいですよね
329デフォルトの名無しさん (ワッチョイ 6f02-tOvn)
2019/07/10(水) 02:58:29.54ID:Jh4oErcv0 そうしないと確率が変わってしまうのではないかな。
330デフォルトの名無しさん (ワッチョイ 13d2-mVFY)
2019/07/10(水) 07:53:06.60ID:c5IU7AfX0 某ゲーム内のブラックジャックは同じカードが自分と相手に出てきた。
カジノのブラックジャックだとトランプを何セットも混ぜてやってるらしいね。
カジノのブラックジャックだとトランプを何セットも混ぜてやってるらしいね。
331デフォルトの名無しさん (ワッチョイ 6f8c-r2oz)
2019/07/10(水) 08:45:30.08ID:FsJSBTR40 絵札の数が決まっていると残りの絵札を数えれば勝てるらしい。
332デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/10(水) 08:48:48.34ID:q0FoS2hTa 実際は6セットとか使うわけです。
有限なのでカウンティングができる。
過去の結果に依存するってことはサイコロ使うような無記憶な試行ではないってことだね。
有限なのでカウンティングができる。
過去の結果に依存するってことはサイコロ使うような無記憶な試行ではないってことだね。
333デフォルトの名無しさん (アークセー Sx87-apWJ)
2019/07/10(水) 09:15:26.99ID:1T4zvF6/x カウンティングだけで勝つのは驚異的な記憶力がないとなかなか難しいと聞く。
小説「マルドゥックスクランブル」でのBJシーンは有名だけど、読んででも半分も理解できなかった記憶があるわ。
小説「マルドゥックスクランブル」でのBJシーンは有名だけど、読んででも半分も理解できなかった記憶があるわ。
334デフォルトの名無しさん (ワッチョイ c301-8j+F)
2019/07/10(水) 09:18:07.74ID:8OTK1K8V0 麻雀よりは簡単
335デフォルトの名無しさん (ワッチョイ c301-8j+F)
2019/07/10(水) 09:20:35.29ID:8OTK1K8V0 麻雀の方が簡単か
すまん
すまん
336デフォルトの名無しさん (ワッチョイ cf69-BEQt)
2019/07/10(水) 09:37:28.19ID:z7915HRG0 BJのカードカウンティング、結構な種類があるんだね
ttps://vegasdocs.com/blackjack/counting.html
ttps://vegasdocs.com/blackjack/counting.html
337デフォルトの名無しさん (ササクッテロ Sp87-4hHn)
2019/07/10(水) 17:29:16.11ID:6YiGFI5ep 麻雀の役判定、得点計算できるライブラリってある?
338デフォルトの名無しさん (ドコグロ MMdf-hlKr)
2019/07/10(水) 18:23:48.87ID:Tg8SA/BfM >>337
ググれ
ググれ
339デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/10(水) 18:44:07.65ID:rAQ8nA0Y0 >麻雀の役判定、得点計算
あると思う
判定も計算も難しくはないし
無くても自製可能なレベル
あると思う
判定も計算も難しくはないし
無くても自製可能なレベル
340デフォルトの名無しさん (ワッチョイ 337d-AH8H)
2019/07/10(水) 19:16:43.40ID:iZJC1PSD0 ものすごく基礎的な質問で申し訳ないんだけどテトリスのようなゲームを作るとき、実行中のプログラムとは別にn秒ごとにあるプログラムを実行するようなのってどうすればいいの?
キーボードからの入力待ちの状態と並行して時間の計測とブロックを落下させるみたいなの
キーボードからの入力待ちの状態と並行して時間の計測とブロックを落下させるみたいなの
341デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/10(水) 19:21:28.73ID:rAQ8nA0Y0 OSによって違いがあるけれど、
指定した時間間隔でイベントを発生させ
そのイベント通知を受けて処理を行うようにする
指定した時間間隔でイベントを発生させ
そのイベント通知を受けて処理を行うようにする
342デフォルトの名無しさん (ワッチョイ 13d2-mVFY)
2019/07/10(水) 19:24:28.60ID:c5IU7AfX0 DOSならVSYNC割り込みとかタイマ割り込みっていうのがある。
343デフォルトの名無しさん (アウアウカー Sac7-lEBl)
2019/07/10(水) 19:37:55.05ID:b2TgwlJAa 入力待ちしてるはずなのになんでブロックは落ちてるんだ
344デフォルトの名無しさん (ワッチョイ 2301-apWJ)
2019/07/10(水) 19:48:07.07ID:wGS7rpFP0 待ってないから。
345デフォルトの名無しさん (ワッチョイ 2301-BEQt)
2019/07/10(水) 19:48:36.59ID:YAEkGiKl0 ブロッキング/ノンブロッキング
同期/非同期
同期/非同期
346デフォルトの名無しさん (ワッチョイ 337d-AH8H)
2019/07/10(水) 19:59:01.20ID:iZJC1PSD0 うーん…前提から間違ってるのか?
ブロックを生成した後、キーボードからの入力を待ちながら一定時間毎に落下させるのかと思ってたけど、一定時間毎に落下させる中でキーボードからの入力があればそちらを実行する感じ?
ブロックを生成した後、キーボードからの入力を待ちながら一定時間毎に落下させるのかと思ってたけど、一定時間毎に落下させる中でキーボードからの入力があればそちらを実行する感じ?
347デフォルトの名無しさん (ワッチョイ 6f79-rgZK)
2019/07/10(水) 20:00:37.82ID:b4vpo7xg0 非同期処理
348デフォルトの名無しさん (ワッチョイ 337d-AH8H)
2019/07/10(水) 20:08:27.28ID:iZJC1PSD0 なるほど
同期処理、非同期処理を使えば割り込ませたりすることができるのか
まだほとんど理解できてないけどある程度方向性は見えてきた気がする
サンクス
同期処理、非同期処理を使えば割り込ませたりすることができるのか
まだほとんど理解できてないけどある程度方向性は見えてきた気がする
サンクス
349デフォルトの名無しさん (ワッチョイ cf63-mE9d)
2019/07/10(水) 20:10:55.04ID:rAQ8nA0Y0350デフォルトの名無しさん (ブーイモ MMff-pONF)
2019/07/10(水) 20:23:29.74ID:nUGO9xykM351デフォルトの名無しさん (アウアウウー Sa67-ze1x)
2019/07/10(水) 20:48:50.43ID:lDiVjXP/a テトリス程度の(コンピュータからしたらゆっくりな動きの)ゲームならマルチタスクやマルチスレッドにしなくても順番に処理すればできそうだけどな。
キー入力については何も押されてなかったらすぐに処理を抜けるようにしとけば良い。
で、画面書き換えたりする処理して、またキー入力されてるかを見て、という感じで繰り返す。
キー入力されてたらそれによって変化するパラメータ(テトリスならブロックの向き等)を変更する。
キー入力については何も押されてなかったらすぐに処理を抜けるようにしとけば良い。
で、画面書き換えたりする処理して、またキー入力されてるかを見て、という感じで繰り返す。
キー入力されてたらそれによって変化するパラメータ(テトリスならブロックの向き等)を変更する。
352デフォルトの名無しさん (アウアウエー Sadf-lEBl)
2019/07/10(水) 21:05:28.75ID:gc55JO0Da マルチスレッドだって順番だろう
昔はコアが一つしかなかったんじゃよ
昔はコアが一つしかなかったんじゃよ
353デフォルトの名無しさん (ワッチョイ 6f8c-r2oz)
2019/07/10(水) 23:25:08.72ID:QCGATMsz0 ソフトタイマ ポーリング 状態シーケンス制御
354デフォルトの名無しさん (ワッチョイ 7602-AvHN)
2019/07/11(木) 01:13:09.90ID:9IeQUu2b0 >>352
順番って、時分割で切り替わるって意味?
しかしそれは普通はOSレベルでやってるので切り替え部分までユーザが考える必要はないね。
そこまで自分で作らねばならないようなOSなし環境や昔の 8 bit CPU みたいなのだと別だが。
順番って、時分割で切り替わるって意味?
しかしそれは普通はOSレベルでやってるので切り替え部分までユーザが考える必要はないね。
そこまで自分で作らねばならないようなOSなし環境や昔の 8 bit CPU みたいなのだと別だが。
355デフォルトの名無しさん (ワッチョイ db8f-AthE)
2019/07/11(木) 02:10:12.63ID:j5kiUrVb0 >>351
それってキー入力取り逃したりしないの?
それってキー入力取り逃したりしないの?
356デフォルトの名無しさん (ワッチョイ 4e7b-dMLx)
2019/07/11(木) 06:43:27.53ID:bnplrtu80 >>352
マルチスレッドじゃなくて単なるループだと思うが
マルチスレッドじゃなくて単なるループだと思うが
357デフォルトの名無しさん (ワッチョイ 0b01-P44A)
2019/07/11(木) 07:08:26.92ID:l57S3jiM0 ハードウェア割り込みとマルチタスクOSがごっちゃになってるんだろ
358デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/11(木) 08:25:52.40ID:Osy0Da+v0 >>355
処理のサイクル(1/30秒 や 1/60秒)の間に off->on->off とパルス状に入力されると取りこぼすよ
処理のサイクル(1/30秒 や 1/60秒)の間に off->on->off とパルス状に入力されると取りこぼすよ
359デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/11(木) 09:26:29.26ID:42U1oSKOa 高橋名人の16連射でもコンピュータからすれば物凄く遅いスピードだから問題ない。40年ぐらい前のクロック4MHzで動く 8 bit CPU でも余裕だ。
それにゲームなら一回や二回入力が失敗しても文句を言うやつはまずいない。
それにゲームなら一回や二回入力が失敗しても文句を言うやつはまずいない。
360デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/11(木) 10:34:43.73ID:nMYI1ORia >>356
まあユーザースレッドなんて言葉もあるけども
昔のCPUだとぶんまわすしかなかったけど、ある意味わかりやすい気がするわ。
リッチな環境でアクションゲームってどうやって作るの?条件変数とか使うのかね?
まあユーザースレッドなんて言葉もあるけども
昔のCPUだとぶんまわすしかなかったけど、ある意味わかりやすい気がするわ。
リッチな環境でアクションゲームってどうやって作るの?条件変数とか使うのかね?
361デフォルトの名無しさん (ワッチョイ 3e7c-P44A)
2019/07/11(木) 11:38:42.52ID:KgOJMZpN0362デフォルトの名無しさん (ワッチョイ 9a2c-i8Xk)
2019/07/11(木) 12:18:10.67ID:xCkJ5LaR0 組み込みでは、0.1〜1秒など、長時間に渡って、
何回もキーを押しているかどうか確認してから、機械を動かす
そうやって、ボタンを確実に押しているかどうかを判断する
1回で判断すると、ボタンの接触不良で、
モーターのon/off が繰り返されてしまうから、短時間で判断できない
この判断を、ハードウェア回路で行うのと、ソフトウェアで行うのと、2つの方法がある
詳しくは、組み込み(エンベッド)情報処理資格の教科書を参照
何回もキーを押しているかどうか確認してから、機械を動かす
そうやって、ボタンを確実に押しているかどうかを判断する
1回で判断すると、ボタンの接触不良で、
モーターのon/off が繰り返されてしまうから、短時間で判断できない
この判断を、ハードウェア回路で行うのと、ソフトウェアで行うのと、2つの方法がある
詳しくは、組み込み(エンベッド)情報処理資格の教科書を参照
363デフォルトの名無しさん (ワッチョイ b352-P44A)
2019/07/11(木) 12:23:27.06ID:ZSl7eG940 一々教科書を読まなくても「組み込み チャタリング」などで調べれば分かるのでは
364デフォルトの名無しさん (ワッチョイ 5fd2-TPoM)
2019/07/11(木) 15:03:35.76ID:vYMpRAzp0 Windows初期はVsync待ちとかウェイトかけずに処理してて、CPU速度が上がったら実機より速くなって(60fps以上)ゲームにならんのもあったわ。
365デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/11(木) 21:07:12.90ID:W9yQmyPFa エイリアンの動きが速すぎて穴を掘ってる暇がないと
366デフォルトの名無しさん (ワッチョイ e301-ihks)
2019/07/11(木) 21:08:10.26ID:+FsFkp9e0 それ何ていう平安京エイリアン?
367デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/11(木) 21:47:38.69ID:BSTUJEPb0 space panic
368デフォルトの名無しさん (ワッチョイ e77d-9mmk)
2019/07/11(木) 21:55:53.90ID:pe38QhTW0 Linuxってconio.h使えないのかよ
getcheもkbhitも駄目とか面倒臭いな
getcheもkbhitも駄目とか面倒臭いな
369蟻人間 ◆T6xkBnTXz7B0 (スププ Sdba-Frt+)
2019/07/11(木) 21:57:23.76ID:JEmOAlRld コンソールで色を付けるならpdcurse使え。ncursesは古い
370蟻人間 ◆T6xkBnTXz7B0 (スププ Sdba-Frt+)
2019/07/11(木) 21:57:56.88ID:JEmOAlRld pdcurses
371デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/11(木) 22:15:03.30ID:BSTUJEPb0 ioctl
372デフォルトの名無しさん (ワッチョイ 0b01-S8wx)
2019/07/12(金) 04:02:10.72ID:30ixxYg+0 pdcursesってcursesのWindows実装なんだけどな
373デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/12(金) 12:58:51.21ID:4AR7dspsa >>368
ncursesとかを使ってそういうラッパー関数作れば良いのではないかな。
ncursesとかを使ってそういうラッパー関数作れば良いのではないかな。
374デフォルトの名無しさん (ワッチョイ db00-ZD/u)
2019/07/12(金) 18:40:44.71ID:q8HbeEfz0 Cで面白いワンライナーとかない?ICCCMとかにも案外ワンライナーという分類はないんだよね。
375デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/12(金) 19:20:34.57ID:rA9WmwUa0376デフォルトの名無しさん (ワッチョイ 5fd2-TPoM)
2019/07/12(金) 19:24:01.49ID:Vt6HtS1w0 BASIC時代に1画面プログラムってのがあったな。
377デフォルトの名無しさん (アウアウウー Sa47-ihks)
2019/07/12(金) 19:40:11.46ID:aSZPouska 1行の定義って何?
378デフォルトの名無しさん (ワッチョイ e301-CjyB)
2019/07/12(金) 19:56:09.02ID:pYBNura/0 >>373
既に世界中で書かれて公開されている予感
既に世界中で書かれて公開されている予感
379デフォルトの名無しさん (ワッチョイ 5ac5-q5pO)
2019/07/12(金) 19:56:09.31ID:zAF1v8/n0 \n
380デフォルトの名無しさん (ワッチョイ 5a73-q5pO)
2019/07/13(土) 01:22:11.42ID:+XrRzYc00 >>378
結婚して///
結婚して///
381デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/13(土) 06:35:45.40ID:GFbMPvry0 #defineを-Dでやれば1行にできるかも
https://www.ioccc.org/2004/vik1.c
https://www.ioccc.org/2004/vik1.c
382デフォルトの名無しさん (ワッチョイ 17d2-rBUL)
2019/07/13(土) 07:12:15.59ID:THUdwCLa0 そもそも改行しないでプログラム書けば一行
383デフォルトの名無しさん (ワッチョイ db2c-WIjK)
2019/07/13(土) 13:07:12.18ID:BfevEbDR0 cppディレクティブは1個1行
384デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/14(日) 22:19:01.35ID:uXqqdpfBM int i = 0;
int s[2];
s[i] = i++ + 1;
printf("%d", s[1]);
これの出力が1になります。これは理解できません。
事実、3行目は以下のようにすると出力は0になります。
s[i++] = 1;
また、3行目は以下のようにすると出力は0になります。
s[i] = i++;
int s[2];
s[i] = i++ + 1;
printf("%d", s[1]);
これの出力が1になります。これは理解できません。
事実、3行目は以下のようにすると出力は0になります。
s[i++] = 1;
また、3行目は以下のようにすると出力は0になります。
s[i] = i++;
385デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/14(日) 22:22:40.77ID:/MgLlV8v0386蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-Frt+)
2019/07/14(日) 22:30:43.07ID:uXkiDi0Ud 「式の評価」という言葉はわかるか?
1+1という式を評価すると2になる。
C/C++の後置演算子では、全ての評価が終わった後で変数を書き換える。
i++は、++がiの後ろについているから、後置だ。i++を評価すると、評価した瞬間の値はiであり、そして式全体の評価が終わると、iはプラスいちになる。
後置の反対は前置演算子であり、式全体の評価の前に変数を+1もしくは-1する。
1+1という式を評価すると2になる。
C/C++の後置演算子では、全ての評価が終わった後で変数を書き換える。
i++は、++がiの後ろについているから、後置だ。i++を評価すると、評価した瞬間の値はiであり、そして式全体の評価が終わると、iはプラスいちになる。
後置の反対は前置演算子であり、式全体の評価の前に変数を+1もしくは-1する。
387デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/14(日) 22:48:05.04ID:uXqqdpfBM 演算規則に従い、インクリメント後置なので、元の3行目の式は
s[i(==0)] = i(==0) + 1
i = i + 1
の順に行われて結果、
s[0]に0が代入されてs[1]の値は初期値0だと思うのですが。
事実、3行目がs[i] = i++;なら上の通りの順で実行されます。
演算規則が無視されて結果がコンパイラ依存になる理由は何ですか?
s[i(==0)] = i(==0) + 1
i = i + 1
の順に行われて結果、
s[0]に0が代入されてs[1]の値は初期値0だと思うのですが。
事実、3行目がs[i] = i++;なら上の通りの順で実行されます。
演算規則が無視されて結果がコンパイラ依存になる理由は何ですか?
388デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/14(日) 22:48:51.03ID:uXqqdpfBM 私は間違えました、s[0]に1が代入されます。
389デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/14(日) 22:52:20.27ID:uXqqdpfBM また、3行目を以下の通りにすると演算規則通りに結果2が得られます。
s[i] = ++i + 1;
s[i] = ++i + 1;
390デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/14(日) 22:53:42.53ID:uXqqdpfBM 順番はこの通りです、
i = i + 1
s[i(==1)] = i(==1) + 1
i = i + 1
s[i(==1)] = i(==1) + 1
391蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-Frt+)
2019/07/14(日) 23:13:20.84ID:uXkiDi0Ud >>387
主な原因は順序が決められないことと最適化のためらしい。詳しくは知らん
主な原因は順序が決められないことと最適化のためらしい。詳しくは知らん
392デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/14(日) 23:15:43.21ID:uXqqdpfBM i = i++;
これの結果が未定義なのは直感的に理解できます。
代入とインクリメント増分の関係が不明だからです。
s[i] = i++;
これの結果が未定義なのは直感的に理解できません。
演算規則に従えば、iはインデックスとしての間接参照でしかないからです。
これの結果が未定義なのは直感的に理解できます。
代入とインクリメント増分の関係が不明だからです。
s[i] = i++;
これの結果が未定義なのは直感的に理解できません。
演算規則に従えば、iはインデックスとしての間接参照でしかないからです。
393デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/14(日) 23:18:12.85ID:XOVWGW1L0394デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/14(日) 23:28:34.66ID:uXqqdpfBM int x = 2*i + i++;
それでは、これの結果もまた未定義ですか?
それでは、これの結果もまた未定義ですか?
395デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/14(日) 23:55:54.94ID:XOVWGW1L0 iの評価は何回だ?
評価が複数回入る式は書くなということだ
仕事でそんなコード書いたらどやされるぞ
評価が複数回入る式は書くなということだ
仕事でそんなコード書いたらどやされるぞ
396デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 00:20:47.65ID:wok43DsHM 私は勉強のためにコードを書いています。
コードがどのような動きをするか興味があります。
int a = 1;
int x = (a = a) + a;
それでは、この式ではxは定義されますか?
左辺と右辺の評価順序に関わらず、答えは同じです。
コードがどのような動きをするか興味があります。
int a = 1;
int x = (a = a) + a;
それでは、この式ではxは定義されますか?
左辺と右辺の評価順序に関わらず、答えは同じです。
397デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 00:33:43.29ID:mPPf+F39a されます
398デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/15(月) 00:46:03.12ID:E9YINa1F0 そんな無意味なコードから何を学ぼうとしているのか分からんわ
399デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/15(月) 00:55:35.98ID:wne2EA+X0 優先順位や式の評価順が曖昧かもって考えるソース、
書いてて気持ち悪くなりませんか?私はなりますよ。
書いてて気持ち悪くなりませんか?私はなりますよ。
400デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/15(月) 01:14:29.35ID:Voexy70f0 >>394
副作用完了点でググってこい
副作用完了点でググってこい
401デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 02:04:55.42ID:wok43DsHM while((s[i++] = t[j++]) != '\0') ;
元々気になったのは、tをsにコピーするこのコードです。
これを見て、他にインクリメントで簡略化出来そうなコードを考えています。
元々気になったのは、tをsにコピーするこのコードです。
これを見て、他にインクリメントで簡略化出来そうなコードを考えています。
402デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 02:10:16.53ID:wok43DsHM for(;t[j] != '\0'; j++){
s[i] = t[j];
i++;
}
s[i] = t[j];
従来の私なら、このようにコードを書いていました。
新しいコードの記述なら1行で書けます。
s[i] = t[j];
i++;
}
s[i] = t[j];
従来の私なら、このようにコードを書いていました。
新しいコードの記述なら1行で書けます。
403デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 02:19:48.51ID:wok43DsHM while((s[i++] = t[i + 1]) != '\0') ;
そこでtをsに1つずらしてコピーするコードをこのように書けないか考えていたら、未定義の問題が生じました。
私は演算規則から考えてこのコードは上手く働くと思いました。
そこでtをsに1つずらしてコピーするコードをこのように書けないか考えていたら、未定義の問題が生じました。
私は演算規則から考えてこのコードは上手く働くと思いました。
404デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 03:09:03.53ID:mPPf+F39a 俺はmemcpy使う
性能は知らん
性能は知らん
405デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 07:21:57.18ID:ex33LrHm0 せっかくC-FAQのリンク書いたのに…
バカって人の言う事聞かないからバカのままなんだな…
バカって人の言う事聞かないからバカのままなんだな…
406デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/15(月) 07:41:01.06ID:Voexy70f0 >>401
「簡略化」とは、何を目指しているんだ?
行数が少ない方がいいとか考えているならバカな考えだからやめとけ。
コンパイラの最適化で同じコードになるような範囲の変形で行数を減らしたところで、可読性を下げてるだけで何のメリットもないぞ。
「簡略化」とは、何を目指しているんだ?
行数が少ない方がいいとか考えているならバカな考えだからやめとけ。
コンパイラの最適化で同じコードになるような範囲の変形で行数を減らしたところで、可読性を下げてるだけで何のメリットもないぞ。
407デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 08:20:49.21ID:wok43DsHM 私は行数の少なさというよりはむしろ見た目の単純さで読みやすいと感じます。
C-FAQのリンクは事実が書かれているのみで演算規則が無視される理由が理解できませんでした。
C-FAQのリンクは事実が書かれているのみで演算規則が無視される理由が理解できませんでした。
408デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/15(月) 08:32:41.44ID:Voexy70f0409デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 09:10:34.41ID:ex33LrHm0 どうせちゃんと読んでないか理解する能力がないんだろうな…
410デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 09:22:44.79ID:IpJNQ16e0411デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/15(月) 10:07:24.78ID:Voexy70f0 >>410
未規定の動作がたまたま自分の期待する動作と同じになったということが理解できてないんだろうね。人の話を聞かない相手に何を言ってもダメそうだね。
未規定の動作がたまたま自分の期待する動作と同じになったということが理解できてないんだろうね。人の話を聞かない相手に何を言ってもダメそうだね。
412デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 10:40:21.72ID:r5uSGSCiM 愛繆私は未定義な理由について理解できません。
なぜなら、演算規則に従い前置インクリメントを代入の評価より先に行えば、389の結果は一つと決まるからです。
しかし、評価順序が未定義となりコンパイラに依存となる理由は何ですか?
この式を定義することによる問題の例を理解したいです。
なぜなら、演算規則に従い前置インクリメントを代入の評価より先に行えば、389の結果は一つと決まるからです。
しかし、評価順序が未定義となりコンパイラに依存となる理由は何ですか?
この式を定義することによる問題の例を理解したいです。
413デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 10:44:14.06ID:mPPf+F39a 左辺は
414デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 10:45:20.28ID:r5uSGSCiM つまり、私は未定義と規定されている理由を知りたいです。
定義することで発生する問題の例などです。
定義することで発生する問題の例などです。
415デフォルトの名無しさん (ワッチョイ ffa5-P44A)
2019/07/15(月) 10:49:35.01ID:6m2OA1zn0 この人の言ってる「演算規則」って何なんだろうね。
「C言語 "演算規則"」でググっても、それらしきものは出てこないし。
「C言語 "演算規則"」でググっても、それらしきものは出てこないし。
416デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 10:57:10.32ID:r5uSGSCiM int i = 0, j = 0;
int x = i++;
int y = ++j;
これです。xでは代入の後に後置インクリメントされます。(x = 0)
yでは代入の前に前置インクリメントされます。(y = 1)
s[i] = ++i + 1;
つまりこの式では代入の前に前置インクリメントされます。(次と等価です、)
i = i +1;
s[i(==1)] = i(==1) + 1;
int x = i++;
int y = ++j;
これです。xでは代入の後に後置インクリメントされます。(x = 0)
yでは代入の前に前置インクリメントされます。(y = 1)
s[i] = ++i + 1;
つまりこの式では代入の前に前置インクリメントされます。(次と等価です、)
i = i +1;
s[i(==1)] = i(==1) + 1;
417デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 10:59:07.47ID:mPPf+F39a >>414
だから、左辺は
だから、左辺は
418デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 10:59:28.08ID:r5uSGSCiM これは、未定義と規定されていますが、理由が理解できません。
私が示した通り、定義することによる問題の例は何ですか?
私が示した通り、定義することによる問題の例は何ですか?
419デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 11:01:03.87ID:r5uSGSCiM 389の中では、左辺はs[1]です。
なぜなら、代入より前にiが前置インクリメントされます。
なぜなら、代入より前にiが前置インクリメントされます。
420デフォルトの名無しさん (ワッチョイ 5fc3-Z5NF)
2019/07/15(月) 11:01:37.73ID:r7SsHRFS0 i++のポストインクリメントとi+1の評価順が不定だから
421デフォルトの名無しさん (ワッチョイ e301-P44A)
2019/07/15(月) 11:02:04.90ID:E9YINa1F0 これ読んで分からないなら諦めろ
未規定の動作とは、複数考えられる動作のうち、どれが実行されるかの要求が課されない動作のこと。
未規定の動作への依存で移植性が低下します。
未規定の動作
・部分式が評価される順序、及び副作用が発生する順序。
ただし関数呼出しの()、&&, ||, ?:, カンマ演算子は除く。(6.5)
・代入演算子のオペランドが評価される順序。(6.5.16)
未規定の動作
http://www.c-lang.org/detail/unspecified_behavior.html
未定義の動作
http://www.c-lang.org/detail/undefined_behavior.html
未規定の動作とは、複数考えられる動作のうち、どれが実行されるかの要求が課されない動作のこと。
未規定の動作への依存で移植性が低下します。
未規定の動作
・部分式が評価される順序、及び副作用が発生する順序。
ただし関数呼出しの()、&&, ||, ?:, カンマ演算子は除く。(6.5)
・代入演算子のオペランドが評価される順序。(6.5.16)
未規定の動作
http://www.c-lang.org/detail/unspecified_behavior.html
未定義の動作
http://www.c-lang.org/detail/undefined_behavior.html
422デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 11:04:11.05ID:r5uSGSCiM i++のポストインクリメントとi+1の評価順が不定な理由は何ですか?
423デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 11:07:31.48ID:r5uSGSCiM i = i++;
これが未定義なのは理解できます。
しかし、389の中で私が示した通り、の定義をすると発生する問題の例は何ですか?
これが未定義なのは理解できます。
しかし、389の中で私が示した通り、の定義をすると発生する問題の例は何ですか?
424デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 11:09:44.83ID:ex33LrHm0 未定義な理由?
言語作った奴がそう決めたから
要するに「仕様だから」
そう決めた理由は想像になるけど最適化しやすい(と言うかそうしないと最適化の妨げになる)と考えたんだろうと思うよ
言語作った奴がそう決めたから
要するに「仕様だから」
そう決めた理由は想像になるけど最適化しやすい(と言うかそうしないと最適化の妨げになる)と考えたんだろうと思うよ
425デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 11:12:06.88ID:mPPf+F39a426デフォルトの名無しさん (ワッチョイ 17d2-rBUL)
2019/07/15(月) 11:12:37.37ID:3cpTbRIL0 インクリメントは式全体の前か後に実行されるからだろ
式の途中で実行されるとかあるの?
式の途中で実行されるとかあるの?
427デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 11:19:52.48ID:r5uSGSCiM 定義すると最適化の妨げになるという理由は、私には反論する知識は全くないので了承します。私は理解しました。
428デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/15(月) 11:22:41.60ID:r5uSGSCiM 425の中で、書かれているように、実際には、演算規則でsのインデックスは0でした。
私は[]の優先を見落としていましたが、私が述べたかったことは、演算規則の優先で順番は決定できると思うことでした。
私は[]の優先を見落としていましたが、私が述べたかったことは、演算規則の優先で順番は決定できると思うことでした。
429デフォルトの名無しさん (ワッチョイ 17d2-rBUL)
2019/07/15(月) 11:23:12.12ID:3cpTbRIL0 最適化の妨げにはならないだろ
コンパイラー簡単に作れるとかじゃないの
コンパイラー簡単に作れるとかじゃないの
430デフォルトの名無しさん (ワッチョイ 9af9-TPoM)
2019/07/15(月) 11:25:19.08ID:b7u0RgVG0 現行のCの仕様に文句があるなら、ANSI?ISO?の仕様策定に参加でもすればいいんじゃね?
431デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 11:29:05.40ID:IpJNQ16e0432デフォルトの名無しさん (ワッチョイ fabc-q5pO)
2019/07/15(月) 11:36:42.62ID:ZvCggxzR0 一通り勉強しましたが、次に何をやったらいいのか分かりません!
何も作れません!
どうしたらいい?
何も作れません!
どうしたらいい?
433デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 11:38:20.09ID:mPPf+F39a >>428
そりゃ決定するための規則を作れば決定するけど、めんどくさいじゃん
そりゃ決定するための規則を作れば決定するけど、めんどくさいじゃん
434デフォルトの名無しさん (ワッチョイ e301-P44A)
2019/07/15(月) 11:39:31.38ID:E9YINa1F0 >>432
作りたいものが無いなら無理に作らんでもいいじゃん
作りたいものが無いなら無理に作らんでもいいじゃん
435デフォルトの名無しさん (ワッチョイ 17d2-rBUL)
2019/07/15(月) 11:40:09.15ID:3cpTbRIL0436デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 12:05:05.25ID:ex33LrHm0437デフォルトの名無しさん (ワッチョイ e301-P44A)
2019/07/15(月) 12:24:44.13ID:E9YINa1F0 要するに++,--は混ぜるな危険ってこと
438デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 12:36:46.00ID:IpJNQ16e0 能なしど低脳
439デフォルトの名無しさん (ワッチョイ 9b78-fHW0)
2019/07/15(月) 12:47:17.16ID:0wrdUuzC0440デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/15(月) 12:55:44.11ID:wne2EA+X0 評価順序以前にループ条件が直感的に分かりにくい様なコードは書くべきでない
441デフォルトの名無しさん (ワッチョイ 1aa5-MLMy)
2019/07/15(月) 12:56:34.33ID:14ut6KBx0 for(@;A;B)
この123が全部必要だと思ってるんじゃね
この123が全部必要だと思ってるんじゃね
442デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/15(月) 13:04:03.21ID:Voexy70f0443デフォルトの名無しさん (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 14:30:35.03ID:y88H95dP0 MISRA-C 2004 の100ルールを守っていないソースコードは、読むに値しないw
まず、コーディングルールを5年勉強しろ!w
まず、コーディングルールを5年勉強しろ!w
444デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/15(月) 14:33:44.55ID:Voexy70f0 >>443
MISRA なんて鎖や束縛を作りたがる「管理職」の思考法でしょう?なんでそんなものに従わなければならないのでしょうかね
MISRA なんて鎖や束縛を作りたがる「管理職」の思考法でしょう?なんでそんなものに従わなければならないのでしょうかね
446デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 15:14:40.80ID:mPPf+F39a ルールはあってもいいけど、MISRAはあれアホだよね。
考えたやつお前はCを使うなよっていう。
考えたやつお前はCを使うなよっていう。
447デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 15:25:22.82ID:ex33LrHm0 >>446
どこがアホなのか詳しく書いてみ
どこがアホなのか詳しく書いてみ
448デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/15(月) 15:26:34.84ID:mPPf+F39a >>447
rubyが嫌になったってことですか?
rubyが嫌になったってことですか?
>>446
あの阿呆なMISRAを制定した人間の種族はなにか、どんな属性か?得意な思考方法、苦手な思考方法は?信条・信念は?
というところには興味があります、そのためだけに MISRA を読んでいたりします
あの阿呆なMISRAを制定した人間の種族はなにか、どんな属性か?得意な思考方法、苦手な思考方法は?信条・信念は?
というところには興味があります、そのためだけに MISRA を読んでいたりします
450デフォルトの名無しさん (ワッチョイ 7602-24gz)
2019/07/15(月) 16:02:12.44ID:3UWFYY1V0 >>432
自分が作りたいものを作れ。
作る技術がまだ足りないならそれについて学習したり研究したりしろ。
一つ間違えてはいけないことは、自分の作りたいものを今の自分が持っている技術力で出来る範囲内に無理に収めないようにすることだ。
収めれば実現はたやすいが飛躍はできず本当にやりたかったことには届かない。
自分が作りたいものを作れ。
作る技術がまだ足りないならそれについて学習したり研究したりしろ。
一つ間違えてはいけないことは、自分の作りたいものを今の自分が持っている技術力で出来る範囲内に無理に収めないようにすることだ。
収めれば実現はたやすいが飛躍はできず本当にやりたかったことには届かない。
451デフォルトの名無しさん (ワッチョイ e301-ihks)
2019/07/15(月) 16:06:07.03ID:QcIx6aGf0 MISRAは実際の不具合を分析して作られたいわばバットノウハウ集だけど、言い換えると最低限のバカ避け。
バカがバカな不具合出すもんだからその他の人が迷惑を被る。
ま、バカはプログラム作るなって事だ。
バカがバカな不具合出すもんだからその他の人が迷惑を被る。
ま、バカはプログラム作るなって事だ。
452443 (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 16:14:22.25ID:y88H95dP0 組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006
この研究会は、トヨタなど大企業から、数十人のベテが集まって、
欧州人に聞きながら、完成された本w
未だに、コーディングルールのバイブルだろがw
元々は、Andrew Koenig の本
C Traps and Pitfalls, 1988, c1989
Cプログラミングの落とし穴
この研究会は、トヨタなど大企業から、数十人のベテが集まって、
欧州人に聞きながら、完成された本w
未だに、コーディングルールのバイブルだろがw
元々は、Andrew Koenig の本
C Traps and Pitfalls, 1988, c1989
Cプログラミングの落とし穴
453デフォルトの名無しさん (ワッチョイ 17d2-rBUL)
2019/07/15(月) 16:20:24.64ID:3cpTbRIL0 自分が馬鹿だとしっている賢い人はMISRAを使うということか
454デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 16:26:07.09ID:IpJNQ16e0 ブランドにすがるだけで自分の頭で考えないやつは相手にならん
あれ読んでて異論を持つことが全くないやつはその疑いが強い
あれ読んでて異論を持つことが全くないやつはその疑いが強い
455デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 16:34:38.99ID:ex33LrHm0456デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 16:42:13.17ID:IpJNQ16e0 命令すんな
そもそも自分が書かねえくせに
そもそも自分が書かねえくせに
458デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 16:48:48.65ID:ex33LrHm0 >>456
どうせ書けないんだろ、無理すんなよw
どうせ書けないんだろ、無理すんなよw
459デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 16:49:33.71ID:ex33LrHm0460デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/15(月) 16:51:54.40ID:Voexy70f0 >>452
お前さんはいつも、有名な誰それがこう言った!とか、なんとかの本にこう書かれていた!とか、他人の発言を字面だけなぞって記憶するだけだから、中身の本質も適用すべき場面も長所短所も理解せずに垂れ流して害悪にしかならないから、もういい加減消えてくれないか?
お前さんはいつも、有名な誰それがこう言った!とか、なんとかの本にこう書かれていた!とか、他人の発言を字面だけなぞって記憶するだけだから、中身の本質も適用すべき場面も長所短所も理解せずに垂れ流して害悪にしかならないから、もういい加減消えてくれないか?
461デフォルトの名無しさん (ワッチョイ 1aa5-MLMy)
2019/07/15(月) 17:02:08.44ID:14ut6KBx0 多分MISRAはΣ計画とセットだったんじゃねえの
とするとゾンビだよ
とするとゾンビだよ
462443 (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 17:25:49.24ID:y88H95dP0 >>457
日本の研究会の考え方・思想は、ほとんどない!
MISRA-C は、Andrew Koenig の本を参考にして、欧州人が作ったから
日本の研究会は、各ルールの例題を作って、誰でもわかるように解説した。
各ルールは、こういう事を言ってます、という解説書
江添 亮の「C++11/14 コア言語」のみたいな本。
無数の例題を並べて、各ルールを解説した本
だから、この2冊は、神の書と言える!
日本の研究会の考え方・思想は、ほとんどない!
MISRA-C は、Andrew Koenig の本を参考にして、欧州人が作ったから
日本の研究会は、各ルールの例題を作って、誰でもわかるように解説した。
各ルールは、こういう事を言ってます、という解説書
江添 亮の「C++11/14 コア言語」のみたいな本。
無数の例題を並べて、各ルールを解説した本
だから、この2冊は、神の書と言える!
463デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/15(月) 17:32:05.00ID:dKUxLoi20 ルールとかくそどうでもよくね
動いて読めればそれでいい
動いて読めればそれでいい
464デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 17:32:21.62ID:IpJNQ16e0 >>458
ブーメラン乙
ブーメラン乙
465デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 17:43:32.93ID:ex33LrHm0466デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 17:46:56.60ID:IpJNQ16e0467デフォルトの名無しさん (スフッ Sdba-9mmk)
2019/07/15(月) 17:47:07.64ID:biXPcN21d 落ちものゲーム作れたと思ったけど落下処理の度に今表示中のものが上にズレて処理後のが新しく表示される仕組みのせいで目が死んだ
これダメな奴だ
これダメな奴だ
468デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 18:01:17.82ID:ex33LrHm0 >>466
ハイハイ、結局具体的には何も言えないグダグダ君だったなw
ハイハイ、結局具体的には何も言えないグダグダ君だったなw
469デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 18:41:39.94ID:IpJNQ16e0 煽っても情報は得られない
インタビューの下手な人だな
インタビューの下手な人だな
470デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 19:25:33.92ID:ex33LrHm0 情報持ってない奴からなにか得ようとしてるってか?
心配するなよ、お前に期待なんてしてないからw
心配するなよ、お前に期待なんてしてないからw
471デフォルトの名無しさん (ワッチョイ 1aa5-MLMy)
2019/07/15(月) 20:06:52.59ID:14ut6KBx0 githubに存在するMISRA適合のソースコードとかどんだけあるんだよ
472443 (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 20:23:31.95ID:y88H95dP0 そのルールを守らないという、逸脱手続きをすれば、OK
トヨタでも、MISRA-C で採点したら、5/100点(ルール)しか取れなかったとかw
70〜80点は、欲しい
トヨタでも、MISRA-C で採点したら、5/100点(ルール)しか取れなかったとかw
70〜80点は、欲しい
473デフォルトの名無しさん (ワッチョイ e301-ihks)
2019/07/15(月) 20:27:21.89ID:QcIx6aGf0474デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/15(月) 20:28:56.79ID:dKUxLoi20 ちなMISRAってどんなの?
pdfのリンクはってれ
pdfのリンクはってれ
475443 (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 20:31:45.40ID:y88H95dP0 例えば、Linux では、関数の冒頭部分に、return がよくある。
冒頭部分で、処理しないものをはじいてしまう
でも、MISRA-C では、関数内で、return は、最後に1つしか使えない。
複数箇所に、出口があってはならない
そのルールを守らないなら、逸脱手続きをすればよい。
その代わりに、点数が下がっていく
冒頭部分で、処理しないものをはじいてしまう
でも、MISRA-C では、関数内で、return は、最後に1つしか使えない。
複数箇所に、出口があってはならない
そのルールを守らないなら、逸脱手続きをすればよい。
その代わりに、点数が下がっていく
476デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 20:32:43.56ID:ex33LrHm0477デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 20:33:46.38ID:ex33LrHm0 あっ、被ったわ
みんな結構このルールに抵抗あるんだなw
みんな結構このルールに抵抗あるんだなw
478443 (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 20:35:21.08ID:y88H95dP0 >>474
「misra-c 2004」「misra-c 2012」で検索して!
「misra-c 2004」「misra-c 2012」で検索して!
479443 (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 20:37:59.21ID:y88H95dP0 他にも、MISRA-C では、2重ループ内から、一気に脱出できないから、フラグを持ちまわる事になる
このルールも嫌われる
このルールも嫌われる
480443 (ワッチョイ 9a2c-i8Xk)
2019/07/15(月) 20:48:48.44ID:y88H95dP0 組み込みとか医療用では、バグると簡単に人が死ぬから、
MISRA-C を勉強していない香具師が、コーディングするとヤバイ!
だから、コーディングできる資格を作るべきだっていう話も聞く
MISRA-C を勉強していない香具師が、コーディングするとヤバイ!
だから、コーディングできる資格を作るべきだっていう話も聞く
481デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/15(月) 20:50:33.69ID:dKUxLoi20 なんでルールブックが有料やねんあほか勝手にやってろ
482デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 21:07:10.69ID:IpJNQ16e0483デフォルトの名無しさん (ワッチョイ 23b3-15OI)
2019/07/15(月) 21:19:39.89ID:pdudwpaZ0484デフォルトの名無しさん (ワッチョイ 5fc3-Z5NF)
2019/07/15(月) 21:36:18.18ID:r7SsHRFS0 4.12 必要 動的なメモリ割り当てを使用してはならない
って酷くね
って酷くね
485デフォルトの名無しさん (ワッチョイ 0e12-cAz/)
2019/07/15(月) 21:47:13.82ID:Xch0qlQL0 俺以外は絶対守れよって思うルールも多々ある
486デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 21:57:44.30ID:ex33LrHm0487デフォルトの名無しさん (ワッチョイ e301-ihks)
2019/07/15(月) 21:58:24.78ID:QcIx6aGf0 関数の中盤以降からreturnするならともかく、早期returnまでも認めないのはナンセンスだよな。
杓子定規すぎるわ。
杓子定規すぎるわ。
488デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 22:00:39.84ID:ex33LrHm0 >>484
組込みだと実行時間が読めなくなるのとフラグメンテーションで総容量足りててもエラーになることがあるからしょうがない
組込みだと実行時間が読めなくなるのとフラグメンテーションで総容量足りててもエラーになることがあるからしょうがない
489デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/15(月) 22:06:28.61ID:IpJNQ16e0490デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 22:43:50.22ID:ex33LrHm0 MISRAをブランドとか言うアホがいるんだ…
まあ具体的な内容には突っ込めないグダグダ君だしなぁww
まあ具体的な内容には突っ込めないグダグダ君だしなぁww
491デフォルトの名無しさん (ワッチョイ 9a01-DHp5)
2019/07/15(月) 22:45:14.79ID:ex33LrHm0 そもそもうちはMISRAは参考にしてるけど全面適用なんてしてないし
492デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 00:24:39.33ID:UHx9kM+ca >>491
いや、しろよ
いや、しろよ
493デフォルトの名無しさん (アウアウクー MM7b-WqwA)
2019/07/16(火) 00:48:27.21ID:/MIJx2vXM プログラムは書く人によって千差万別
書く物によっては複雑な物を書かなきゃならない
そしてその上でのバグ千差万別
ルールブックなんてプログラム書かない管理者がこれを守れば大丈夫(キリッ
ってするものだろう
書く物によっては複雑な物を書かなきゃならない
そしてその上でのバグ千差万別
ルールブックなんてプログラム書かない管理者がこれを守れば大丈夫(キリッ
ってするものだろう
494デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 01:07:51.42ID:EySzsoWc0 普通は大勢で開発するときに必要な取り決めだけどな
そういう規模で仕事しないなら,何しても良いけど
そういう規模で仕事しないなら,何しても良いけど
495デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 01:37:13.82ID:UHx9kM+ca >>494
MISRAは明らかに小規模なプログラムのための規約だと思うよ
MISRAは明らかに小規模なプログラムのための規約だと思うよ
496デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 02:37:59.80ID:EySzsoWc0 大規模なプロジェクトのコーディング規約を決める人がここにいるとは思わないからね
小規模だと思うなら,そのルールでやれば良いんじゃない?
小規模だと思うなら,そのルールでやれば良いんじゃない?
497デフォルトの名無しさん (アウアウクー MM7b-WqwA)
2019/07/16(火) 03:09:26.20ID:FvAVzBqbM 大規模とか小規模とかじゃなく実際にプログラムを書いてると必要になったりとかあるって話で
プログラムを書いた事内物が大規模ではとかいってるのか
プログラムを書いた事内物が大規模ではとかいってるのか
498デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 03:18:03.55ID:UHx9kM+ca そうそう、MISRAはクソ
499デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 03:29:07.35ID:UHx9kM+ca MISRAを尊重するひとって、returnを書く位置によって返る先が変わると思ってるんだよ
500デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/16(火) 07:29:02.49ID:UAKGOqEv0 間違ったことばかり書いてあるわけじゃないけどね
現場にそぐわないスキル不足なやつを庇うところには同意しかねるわけよ
> ルール 8.14 必要 restrict型修飾子を使用してはならない
規格票が読めないようなアホの相手はやってらんね
C++が混ざるところでも対策は簡単だし
現場にそぐわないスキル不足なやつを庇うところには同意しかねるわけよ
> ルール 8.14 必要 restrict型修飾子を使用してはならない
規格票が読めないようなアホの相手はやってらんね
C++が混ざるところでも対策は簡単だし
501デフォルトの名無しさん (ワッチョイ 17d2-rBUL)
2019/07/16(火) 07:43:27.01ID:1j77iOOZ0 トヨタのやってることは一つのミスでも人が死ぬということだよ
もしrestrictを使って人が死んだら責任とれるの?
もしrestrictを使って人が死んだら責任とれるの?
502デフォルトの名無しさん (アウアウクー MM7b-BPOI)
2019/07/16(火) 07:45:28.75ID:/V8NdDl/M それなら、人が死なないプロジェクトではMISRAは守る必要がないですね。
503デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/16(火) 07:58:46.16ID:UAKGOqEv0 >>501
規格票を確認しないやつにミスがどうたら言われたかねえぜ
規格票を確認しないやつにミスがどうたら言われたかねえぜ
504デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/16(火) 08:02:25.27ID:UAKGOqEv0 ○○を使って人が死んだら責任とれるの?
○○に何でも突っ込めるウルトラクソ論法
ポインタ、共用体、仮定義、数学関数、それから?
○○に何でも突っ込めるウルトラクソ論法
ポインタ、共用体、仮定義、数学関数、それから?
505デフォルトの名無しさん (アウアウウー Sa47-VBrH)
2019/07/16(火) 08:50:54.07ID:7HVrvnq4a >>501
お前が作ってるプログラムはテストしないのか?
お前が作ってるプログラムはテストしないのか?
506デフォルトの名無しさん (ワッチョイ 3e7c-P44A)
2019/07/16(火) 09:07:55.77ID:csbTSCSc0507デフォルトの名無しさん (ワッチョイ 1aa5-MLMy)
2019/07/16(火) 09:35:00.37ID:UXD1By8p0 上司のバカかバカの上司でも理解できるまでに破壊されたC言語だろ
それを規格と言ってるだけだ
安全かもしれないけど対照実験がないでしょ
安全であることをどうやって確かめたのか論文の欠片も見つからなかった
だからMISRAの安全神話は神話かデマかフェイクニュースだよ
それを規格と言ってるだけだ
安全かもしれないけど対照実験がないでしょ
安全であることをどうやって確かめたのか論文の欠片も見つからなかった
だからMISRAの安全神話は神話かデマかフェイクニュースだよ
508デフォルトの名無しさん (アウアウカー Sa43-NWea)
2019/07/16(火) 09:46:10.29ID:MyJUZjZxa プライドだけは高いこの道30年の社畜が書いた様なルールだよ。
「してはいけない」ばかりでこうしろという記述が圧倒的に少ない。
フレームワークという発想がない。指摘だけ。すべて勘と経験という名の錯覚に基づいてる。
あと内容的に「最適化はしてはいけない」とか書いておけばいいんじゃないかと思う。次は入れて欲しい。
「してはいけない」ばかりでこうしろという記述が圧倒的に少ない。
フレームワークという発想がない。指摘だけ。すべて勘と経験という名の錯覚に基づいてる。
あと内容的に「最適化はしてはいけない」とか書いておけばいいんじゃないかと思う。次は入れて欲しい。
509デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 10:35:01.62ID:Yi/rfLM50510デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 12:58:57.36ID:EySzsoWc0 たまたま動いているのは
処理系のバグかも知れない
処理系のバグかも知れない
511デフォルトの名無しさん (ワッチョイ e301-QSGK)
2019/07/16(火) 13:18:30.94ID:uQ5be57j0 組込み系の開発経験者いなくて草
MISRA準拠が納品物の条件にあるんだよ
でもプロジェクト毎にカスママイズするから
100%適用するわけじゃないよ
わけわからんルールは適用除外してる
MISRA準拠が納品物の条件にあるんだよ
でもプロジェクト毎にカスママイズするから
100%適用するわけじゃないよ
わけわからんルールは適用除外してる
512デフォルトの名無しさん (ドコグロ MM77-DHp5)
2019/07/16(火) 14:13:08.82ID:i1fbuZ/pM513デフォルトの名無しさん (ワッチョイ 3e7c-P44A)
2019/07/16(火) 15:01:33.68ID:csbTSCSc0 >>511
8進数使うな、とかいやだよね
8進数使うな、とかいやだよね
514デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 15:05:03.91ID:Yi/rfLM50 エディタ上での見栄えで桁合わせに 空白を使わず 0 で補ってやらかす
515デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 15:14:31.06ID:EySzsoWc0516デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 15:27:11.60ID:UHx9kM+ca バイトが6bitの時は便利だったとかいう話だけど、今要らんよね
emacs使っててエンコードがアレだと出てくるね
emacs使っててエンコードがアレだと出てくるね
517デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 15:32:14.71ID:Yi/rfLM50 文字列で [ESC] を埋めるのに \033 を使ってるのを見るぐらい
(2進数のリテラルをマクロでなんとかするとき 一時的に8進化するけど 中の話)
(2進数のリテラルをマクロでなんとかするとき 一時的に8進化するけど 中の話)
518デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 15:40:10.80ID:uQ5be57j0 大昔のアーキテクチャは18bit,24bit とかで3bit 区切りが扱いやすかった
今は16,32,64と16進数が扱いやすいって話だね
ゼロ始まりは8進数というのはB言語からきたらしいよ
今は16,32,64と16進数が扱いやすいって話だね
ゼロ始まりは8進数というのはB言語からきたらしいよ
519デフォルトの名無しさん (ドコグロ MM77-DHp5)
2019/07/16(火) 15:44:50.30ID:i1fbuZ/pM520デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 16:30:56.95ID:SpxSpG+wx \0 … 8進数
\x0 … 16進数
\x0 … 16進数
521デフォルトの名無しさん (ワッチョイ 2395-q5pO)
2019/07/16(火) 16:37:07.34ID:cpfSTA9t0 >>487
if の nest が深くなってしまう?
if の nest が深くなってしまう?
522デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 16:54:01.54ID:Yi/rfLM50 >>521
教条主義的に守るなら そうせざるを得ないだろうね
if (エラー) return ; // 即脱出
後続コード
return ; // 最終
即脱出を禁ずるなら
後続コードは即脱出条件とは排他的なので if (or else) 内に収めるしかない
if (!エラー) {
後続コード
}
return ; // 最終
教条主義的に守るなら そうせざるを得ないだろうね
if (エラー) return ; // 即脱出
後続コード
return ; // 最終
即脱出を禁ずるなら
後続コードは即脱出条件とは排他的なので if (or else) 内に収めるしかない
if (!エラー) {
後続コード
}
return ; // 最終
523デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 16:58:26.41ID:EySzsoWc0 goto ___exit; /* 震え声 */
524デフォルトの名無しさん (ワッチョイ 4e69-dwJn)
2019/07/16(火) 16:59:45.97ID:Yi/rfLM50 多分 goto も塞がれてる気配w
525デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 17:24:48.72ID:uQ5be57j0 うちはreturnは最後に一つのみってやつは適用除外になってる
理由はネストが深くなって読みづらくなるから
gotoもネストしたループから一気に抜ける場合のみ使ってもよいことになってる
フラグ使ってbreakで抜けるより読みやすいからね
理由はネストが深くなって読みづらくなるから
gotoもネストしたループから一気に抜ける場合のみ使ってもよいことになってる
フラグ使ってbreakで抜けるより読みやすいからね
526デフォルトの名無しさん (アウアウウー Sa47-ihks)
2019/07/16(火) 17:27:15.45ID:glyNXuyHa もちろんgotoも禁止さ。
あと、各関数の頭で引数チェックも必須なのでreturn禁止とのコンボでほぼ必ず正常系処理のネストが一段以上深くなる。
引数チェック必須はISO26262だったかもしれん。
あと、各関数の頭で引数チェックも必須なのでreturn禁止とのコンボでほぼ必ず正常系処理のネストが一段以上深くなる。
引数チェック必須はISO26262だったかもしれん。
527デフォルトの名無しさん (アウアウエー Sa52-NWea)
2019/07/16(火) 17:27:59.62ID:UHx9kM+ca 途中のreturn禁止を徹底するなら、ifとかelseの後に2行以上書くの禁止にした方がいいね。
代入だけ許容するくらいでいい。
代入だけ許容するくらいでいい。
528デフォルトの名無しさん (スフッ Sdba-Z5NF)
2019/07/16(火) 17:28:40.15ID:T78CNDqDd >>513
0は0x0とか書かなきゃいけないんかね
0は0x0とか書かなきゃいけないんかね
529デフォルトの名無しさん (ワッチョイ 5fd2-TPoM)
2019/07/16(火) 18:10:37.85ID:QICQY/wp0 >515
そりゃもう512色カラー設定に(ry
そりゃもう512色カラー設定に(ry
530デフォルトの名無しさん (スップ Sd5a-AthE)
2019/07/16(火) 18:31:58.85ID:2nARKc5Ld ここまできたらC言語も禁止だな。
pythonでコーディングしてコンパイルしてやればいい。
pythonでコーディングしてコンパイルしてやればいい。
531デフォルトの名無しさん (ワッチョイ 5ba0-P44A)
2019/07/16(火) 18:35:56.79ID:/Cc9wbE10 結構前から言われてない?
「C言語を使う必要が無いなら使うな」と
「C言語を使う必要が無いなら使うな」と
532デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/16(火) 18:47:43.53ID:K50k857la pythonを使って人が死んだら責任とれるの?
533デフォルトの名無しさん (スップ Sd5a-AthE)
2019/07/16(火) 18:54:47.98ID:2nARKc5Ld >>532
大丈夫さ。プログラム全体をtryで囲んで引っ掛かったらprint("手動運転に切り替てください")のコンボがある。
大丈夫さ。プログラム全体をtryで囲んで引っ掛かったらprint("手動運転に切り替てください")のコンボがある。
534デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 18:58:26.32ID:uQ5be57j0 pythonでOSやデバドラ書けるようになったら考えるわ
535デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 20:05:19.62ID:WsWptbblx #define xxx 06
#define yyy 07
//#define zzz 08 // なぜかエラーになる
#define yyy 07
//#define zzz 08 // なぜかエラーになる
536デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/16(火) 20:31:07.37ID:K50k857la なぜかはひみつ
537デフォルトの名無しさん (ブーイモ MM26-cAz/)
2019/07/16(火) 20:54:46.50ID:GCGNUpCjM >>535
なんてありがちな…
なんてありがちな…
538デフォルトの名無しさん (ブーイモ MM26-cAz/)
2019/07/16(火) 21:03:30.93ID:GCGNUpCjM539デフォルトの名無しさん (アウアウウー Sa47-KZVA)
2019/07/16(火) 21:05:08.13ID:K50k857la 祈りが足りないからだな
540デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 21:08:14.38ID:uQ5be57j0 ちょっと前に8進数が〜ってやってるのに
あ、ネタかw
あ、ネタかw
541デフォルトの名無しさん (ワッチョイ 5ba0-P44A)
2019/07/16(火) 21:22:48.20ID:/Cc9wbE10 このスレの人って少し前のレス読まないよね
542デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/16(火) 21:31:28.73ID:7JXDuVC90 const char *sの順番が納得いかない
直感的にはchar * const sだろうが!!
直感的にはchar * const sだろうが!!
543デフォルトの名無しさん (ワッチョイ 5fc3-Z5NF)
2019/07/16(火) 21:32:10.10ID:W8tOKWg20 char const*だろ?
544デフォルトの名無しさん (ワッチョイ db8f-AthE)
2019/07/16(火) 22:16:46.03ID:Qe+dZ6A/0 * const char s
じゃね?
じゃね?
545デフォルトの名無しさん (ワッチョイ db8f-AthE)
2019/07/16(火) 22:17:34.37ID:Qe+dZ6A/0 おれは何を言ってるんだ??
546デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 22:20:37.80ID:dxLim7GAx >>542
>const char *sの順番が納得いかない
>直感的にはchar * const sだろうが!!
前者はポイントされる文字列が const で、後者はポインタ自体が const でしょ
>const char *sの順番が納得いかない
>直感的にはchar * const sだろうが!!
前者はポイントされる文字列が const で、後者はポインタ自体が const でしょ
547デフォルトの名無しさん (ワッチョイ e301-S8wx)
2019/07/16(火) 22:42:49.53ID:uQ5be57j0 const char* const s
これも直感的じゃないって言うんだろうか
これも直感的じゃないって言うんだろうか
548デフォルトの名無しさん (アークセー Sx3b-GinL)
2019/07/16(火) 22:43:19.23ID:dxLim7GAx 546です
すみません、それを踏まえてということか…
すみません、それを踏まえてということか…
549デフォルトの名無しさん (ワッチョイ 5a73-q5pO)
2019/07/16(火) 22:50:32.56ID:g+WSNcLQ0 const は後置で書いたほうが整合性が取れる
char const * const s:
しかし、見た目的にかわいいのは前置である
const char * s;
私はかわいいのが好きである
よって前置は使わない
char const * const s:
しかし、見た目的にかわいいのは前置である
const char * s;
私はかわいいのが好きである
よって前置は使わない
550デフォルトの名無しさん (ワッチョイ 5a73-q5pO)
2019/07/16(火) 22:58:11.13ID:g+WSNcLQ0 そこで私が提案したいのが「strong」である
strongは修飾したデータをすべてconstにする
つまり
char const * const s;
と
strong char * s;
は等価である
strongは修飾したデータをすべてconstにする
つまり
char const * const s;
と
strong char * s;
は等価である
551デフォルトの名無しさん (ワッチョイ ba52-QpLE)
2019/07/16(火) 23:13:59.86ID:ICazHXPW0 >>550
安易な予約語の追加は嫌われるよ
安易な予約語の追加は嫌われるよ
552デフォルトの名無しさん (ワッチョイ 4e63-P44A)
2019/07/16(火) 23:18:11.31ID:EySzsoWc0 「strongがやられたようだな…」
「フフフ…奴は四天王の中でも最弱…」
「フフフ…奴は四天王の中でも最弱…」
553デフォルトの名無しさん (ワッチョイ 5ba0-P44A)
2019/07/16(火) 23:19:03.80ID:/Cc9wbE10 <strong>char* s</strong>
554デフォルトの名無しさん (ワッチョイ e301-P44A)
2019/07/16(火) 23:22:51.61ID:uQ5be57j0 stringと間違えそうで嫌だなw
readonlyはc#で使ってるしな
やっぱconstだな
readonlyはc#で使ってるしな
やっぱconstだな
555デフォルトの名無しさん (ワッチョイ 7602-24gz)
2019/07/16(火) 23:40:17.89ID:awioItM70 大文字で CONST にするとか。
556デフォルトの名無しさん (スップ Sd5a-sMSa)
2019/07/17(水) 04:24:07.40ID:CqcyHUxLd フン
char *const_s
char *const_s
557デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/17(水) 06:33:32.66ID:Pp4wfZXK0 >>546
const int a → constなint型のa
const char *s → constなchar *型のs
constなのはchar *つまりポインタ(直感)
char * const s → char *型のconstなs
constなのはsつまり文字列自体(直感)
なんで逆!!
const int a → constなint型のa
const char *s → constなchar *型のs
constなのはchar *つまりポインタ(直感)
char * const s → char *型のconstなs
constなのはsつまり文字列自体(直感)
なんで逆!!
558デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/17(水) 06:46:44.61ID:NB17uhF90 > const char *s → constなchar *型のs
ギャグだよな?
ギャグだよな?
559デフォルトの名無しさん (ワッチョイ 9ada-Bj8P)
2019/07/17(水) 06:57:50.40ID:i06pHchL0 宣言は右から左に読む
const等の修飾は左にかかる
char const * const s; // sは、const *である、const char型の
右にかかるなら↓のように書けないとおかしいがこれは構文エラーである
const char const *s;
変数名はただの識別子で、ある領域にsという名前を付けただけにすぎない
constやvolatileは型修飾子であり、これらが付くのは型に対してである
〜という領域を、以後sと呼ぶ、である
const等の修飾は左にかかる
char const * const s; // sは、const *である、const char型の
右にかかるなら↓のように書けないとおかしいがこれは構文エラーである
const char const *s;
変数名はただの識別子で、ある領域にsという名前を付けただけにすぎない
constやvolatileは型修飾子であり、これらが付くのは型に対してである
〜という領域を、以後sと呼ぶ、である
560デフォルトの名無しさん (ワッチョイ 73f6-AvHN)
2019/07/17(水) 07:14:03.66ID:NB17uhF90 ちげーよ
宣言は真ん中から左右に読むんだよ
char const *(* const s)[1];
宣言は真ん中から左右に読むんだよ
char const *(* const s)[1];
561443 (ワッチョイ 9a2c-i8Xk)
2019/07/17(水) 09:21:48.88ID:u050lnGw0 >>526
引数チェックに関しては、Java のコーディングルールでは、
外部の人用のAPI、つまりpublic な関数には、必要
一方、そのモジュール・クラスの実装者が使う、
内部的なAPI、つまりprivate な関数には、いらない
既にどこかで、エラーチェックしてるから、何回も同じエラーチェックするのは、無駄
引数チェックに関しては、Java のコーディングルールでは、
外部の人用のAPI、つまりpublic な関数には、必要
一方、そのモジュール・クラスの実装者が使う、
内部的なAPI、つまりprivate な関数には、いらない
既にどこかで、エラーチェックしてるから、何回も同じエラーチェックするのは、無駄
562デフォルトの名無しさん (ワッチョイ 23b3-15OI)
2019/07/17(水) 21:08:01.97ID:E0YvS3zE0 const char *sは*sがconst
つまりポインタsの指すアドレスにある値が不変だけどsがどこを指すのかは可変
char *const sはsがconst
つまりポインタsがどこを指すかは不変だけどsの指すアドレスにある値は可変
大体こんな認識で合ってる?
つまりポインタsの指すアドレスにある値が不変だけどsがどこを指すのかは可変
char *const sはsがconst
つまりポインタsがどこを指すかは不変だけどsの指すアドレスにある値は可変
大体こんな認識で合ってる?
563デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/17(水) 23:04:57.90ID:Pp4wfZXK0 あってるけど納得いかないって話
1つ目がまず何で*sにかかるんだよ
自然に読んだらconstはchar *にかかるだろ
右から読むとか頭おかしいわ、アラビア語かよ
1つ目がまず何で*sにかかるんだよ
自然に読んだらconstはchar *にかかるだろ
右から読むとか頭おかしいわ、アラビア語かよ
>>563
char * s;
に 1 個の const を追加するとき、形式的に追加できる場所は 4 箇所
a) char * s const;
b) char * const s;
c) char const * s;
d) const char * s;
このうち a) はコンパイルできない
b) c) は可能だが、の二つの間で意味は異なる
d) は本来ならエラーであるべきだと私は考えているが、実際には c) と一緒の意味になっている
char * s;
に 1 個の const を追加するとき、形式的に追加できる場所は 4 箇所
a) char * s const;
b) char * const s;
c) char const * s;
d) const char * s;
このうち a) はコンパイルできない
b) c) は可能だが、の二つの間で意味は異なる
d) は本来ならエラーであるべきだと私は考えているが、実際には c) と一緒の意味になっている
565デフォルトの名無しさん (ワッチョイ 2395-q5pO)
2019/07/17(水) 23:34:56.30ID:RL7WDafS0 C言語使う時はいつ?
早いコードが欲しい時
メモリー消費に無駄のないコードが欲しい時
他ある?
早いコードが欲しい時
メモリー消費に無駄のないコードが欲しい時
他ある?
>>565
他の言語はほとんどわからず(かじってはみたものの使えるまでにはMPがあがらず)、C/C++ でしかまともに書けないし発想できないからです…
他の言語はほとんどわからず(かじってはみたものの使えるまでにはMPがあがらず)、C/C++ でしかまともに書けないし発想できないからです…
567デフォルトの名無しさん (ワッチョイ db8f-AthE)
2019/07/17(水) 23:42:49.57ID:FDkzfNlT0 >>563
実はアラビア語って可能性はないのか?
実はアラビア語って可能性はないのか?
568デフォルトの名無しさん (ワッチョイ e368-BPOI)
2019/07/17(水) 23:49:47.36ID:Pp4wfZXK0 そもそもconst char *sの宣言の時の切れ目がconst / char / *s なのも何だかなぁ
const / char * / s でconstはchar *にかかれよjk
現実に間違ってるのは渋々受け入れてるけど開発者が許せない
const / char * / s でconstはchar *にかかれよjk
現実に間違ってるのは渋々受け入れてるけど開発者が許せない
569デフォルトの名無しさん (アークセー Sxa3-F8Mm)
2019/07/18(木) 00:00:28.28ID:OLFUgkogx >>564
自分は b or(and) d かなー
自分は b or(and) d かなー
570デフォルトの名無しさん (ワッチョイ 3f52-5sVo)
2019/07/18(木) 00:33:34.97ID:Nr80YdQr0 >>565
他に思い付くところとしては、
組み込み環境などで、C言語以外の選択肢がない、または他の言語で実行できる環境を整えるよりCを使った方が楽な場合。
外部のライブラリのインタフェースがC言語で、呼び出す部分をCで作る方が楽な場合。
バイナリファイルの操作などポインタ操作を使って実装しやすい場合。
他に思い付くところとしては、
組み込み環境などで、C言語以外の選択肢がない、または他の言語で実行できる環境を整えるよりCを使った方が楽な場合。
外部のライブラリのインタフェースがC言語で、呼び出す部分をCで作る方が楽な場合。
バイナリファイルの操作などポインタ操作を使って実装しやすい場合。
571デフォルトの名無しさん (ワッチョイ 3f52-5sVo)
2019/07/18(木) 00:48:28.58ID:Nr80YdQr0572デフォルトの名無しさん (ワッチョイ 4fd2-ulaa)
2019/07/18(木) 05:33:10.45ID:yO5P6Jqp0 char *s
の意味は*sはchar型だよって意味で
sはchar *型だよって意味じゃないよ
の意味は*sはchar型だよって意味で
sはchar *型だよって意味じゃないよ
573デフォルトの名無しさん (スップ Sddf-1UnR)
2019/07/18(木) 05:43:05.99ID:xY9KzRxOd574デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/18(木) 06:48:06.17ID:2qyz/4gG0575デフォルトの名無しさん (ドコグロ MM5f-FX/1)
2019/07/18(木) 07:54:18.60ID:kb0ZHGx0M *と*const があると憶えるべき。
576デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/18(木) 09:56:03.22ID:q9HPUerJa >>563
ポインタを表す * が型にくっついてるんじゃなくて変数にくっついてるからでは?
分かりにくいなら typedef でポインタの型を作ってそれを使えばいいんじゃないな。
右から読む事に関しては英語を日本語に翻訳する時に順序を入れ換えた方が自然な感じになる事があるのでなんとも言えんな。漢文のレ点みたいなものもあるしな。
日本語とは逆順の方が自然な表現になる言語はある。そして歴史的な事情で混在してしまっているのもある(アメリカでの年月日が月日年の順だとか)。
生まれながらにしてその言語使ってればその人にとってはそれが一番自然な表現だからな。
ポインタを表す * が型にくっついてるんじゃなくて変数にくっついてるからでは?
分かりにくいなら typedef でポインタの型を作ってそれを使えばいいんじゃないな。
右から読む事に関しては英語を日本語に翻訳する時に順序を入れ換えた方が自然な感じになる事があるのでなんとも言えんな。漢文のレ点みたいなものもあるしな。
日本語とは逆順の方が自然な表現になる言語はある。そして歴史的な事情で混在してしまっているのもある(アメリカでの年月日が月日年の順だとか)。
生まれながらにしてその言語使ってればその人にとってはそれが一番自然な表現だからな。
577デフォルトの名無しさん (スップ Sddf-1UnR)
2019/07/18(木) 10:04:50.81ID:xY9KzRxOd578デフォルトの名無しさん (ワッチョイ 3f28-t2IU)
2019/07/18(木) 21:25:27.83ID:PbeogWAD0 この話は何時も混乱するんだけど
結局の所は
自分の言葉で理解するまでやる
これをやらないと混乱してしまう
なぜそうなってしまったのか?
という視点で解釈しようとしないと
なかなかにc言語って難しい
その辺は例のc言語ポインタにのみついて書かれた本
あれを読んで
後は何とか自分の言葉で理解して解釈するしか方法が無い
それとこんなになってしまっている原因に
キーボード上の記号が少ない
というのもある
basic何かでは記号類は四則演算類だけ使って
なるだけ英単語?を使って記述するようになっている
だから使う場所によって記号の意味が違う
なんていうのが起こりにくくなってる
ある意味c言語が普及してしまったのはプログラミング世界にとっては不幸なのかもしれない
結局の所は
自分の言葉で理解するまでやる
これをやらないと混乱してしまう
なぜそうなってしまったのか?
という視点で解釈しようとしないと
なかなかにc言語って難しい
その辺は例のc言語ポインタにのみついて書かれた本
あれを読んで
後は何とか自分の言葉で理解して解釈するしか方法が無い
それとこんなになってしまっている原因に
キーボード上の記号が少ない
というのもある
basic何かでは記号類は四則演算類だけ使って
なるだけ英単語?を使って記述するようになっている
だから使う場所によって記号の意味が違う
なんていうのが起こりにくくなってる
ある意味c言語が普及してしまったのはプログラミング世界にとっては不幸なのかもしれない
579デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/18(木) 21:30:10.98ID:1zgaXsge0 C言語って初心者向けに作られたものではないと思う
>>578
私も最初に C をやったときには、ここまで流行るとは思わなかったんです、むしろ pascal の方が筋がいいと思っていたのですが、どうしてこうなってしまったのでしょうか?
私も最初に C をやったときには、ここまで流行るとは思わなかったんです、むしろ pascal の方が筋がいいと思っていたのですが、どうしてこうなってしまったのでしょうか?
>>579
当時は初心者用とかは特に無くて、BASIC でもある程度できる人はすぐに peek, poke を連発するようになったものです、最近の人は甘えていると思います
当時は初心者用とかは特に無くて、BASIC でもある程度できる人はすぐに peek, poke を連発するようになったものです、最近の人は甘えていると思います
582デフォルトの名無しさん (ワッチョイ 0f01-7lXP)
2019/07/18(木) 21:41:19.07ID:AzHVv8Pq0 >>580
UNIXがCで云々というのもあるけど、良い意味で高級アセンブラとして使い勝手が良かったからじゃないかな?
UNIXがCで云々というのもあるけど、良い意味で高級アセンブラとして使い勝手が良かったからじゃないかな?
583デフォルトの名無しさん (ワッチョイ 0fab-Pjse)
2019/07/18(木) 22:00:46.19ID:8m1lI2X40 厳格で融通がきかないと嫌われる
pascalはそんな感じ
pascalはそんな感じ
>>583
delphi は結構流行ったと思ったんですけれど…
delphi は結構流行ったと思ったんですけれど…
585デフォルトの名無しさん (ワッチョイ 3fa5-xTH7)
2019/07/18(木) 22:18:08.64ID:0kCblb2b0 pascal失速最大の原因は:=だろう
これを採用している言語はもう一つも無い
プログラミング業界最大かつ唯一にして不可侵の大例外を抱えてるのがpascalだ
これを採用している言語はもう一つも無い
プログラミング業界最大かつ唯一にして不可侵の大例外を抱えてるのがpascalだ
586デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/18(木) 22:30:23.30ID:1zgaXsge0 pascalで開発したアプリっていうと
JaneStyleが有名かな?
JaneStyleが有名かな?
587デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/18(木) 22:32:00.45ID:1zgaXsge0 厳格で融通がきかないのは、教育用として最適だと思う
588デフォルトの名無しさん (ワッチョイ 0f01-sqrU)
2019/07/18(木) 22:35:15.64ID:ugDCzjFC0 pascalでUNIX張りのOS書いていれば流行ったかもね
589デフォルトの名無しさん (ワッチョイ ff02-lraP)
2019/07/19(金) 00:19:03.24ID:7Hdy7m6i0 >>585
Modula-2は:=だったような気がする。
Modula-2は:=だったような気がする。
590デフォルトの名無しさん (ワッチョイ ff02-lraP)
2019/07/19(金) 00:22:05.35ID:7Hdy7m6i0591デフォルトの名無しさん (ワッチョイ 3fa5-xTH7)
2019/07/19(金) 00:25:42.16ID:Mih8lrFJ0 もう一つが奥の深さでC言語ではポインタが奥の深い箇所にあたる
この難易度が絶妙で難しい難しいと言われていて初学者には適度に難しいので挫折者が増える、
挫折者の総量が言語の価値を決定する
教育用に作られた言語は難しい箇所とか理屈に合わない箇所とか奥の深い箇所とかが無いのでオカルトとしての魅力が無い
学習曲線がいびつじゃないと流行しない
この難易度が絶妙で難しい難しいと言われていて初学者には適度に難しいので挫折者が増える、
挫折者の総量が言語の価値を決定する
教育用に作られた言語は難しい箇所とか理屈に合わない箇所とか奥の深い箇所とかが無いのでオカルトとしての魅力が無い
学習曲線がいびつじゃないと流行しない
592デフォルトの名無しさん (ワッチョイ 3f79-k+pP)
2019/07/19(金) 00:30:44.87ID:QK1dwfXD0 ポインタはただの入り口だろ
Cは入り口で躓く奴が多いだけで奥は寧ろ浅い
Cは入り口で躓く奴が多いだけで奥は寧ろ浅い
593デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/19(金) 00:36:04.81ID:nbu0jJrl0 ポインタ使わないでもC言語ってプログラム書けるんだよな
無理して難しいことをしなくても良いと思う
ちゃんと動くかどうかの方が重要
無理して難しいことをしなくても良いと思う
ちゃんと動くかどうかの方が重要
594デフォルトの名無しさん (ワッチョイ 3f79-k+pP)
2019/07/19(金) 00:38:14.85ID:QK1dwfXD0 ポインタを使わないならCを使わない方がいい
595デフォルトの名無しさん (ワッチョイ 8f8f-1UnR)
2019/07/19(金) 01:10:46.83ID:0vO2r76S0 超無理矢理ならポインタ使わずになんでもできるんかな?
いずれにせよポインタ理解してないとライブラリ使えなくて詰むでしょ。たぶん突然落ちたりメモリリークだらけのプログラムができあがるはず。
いずれにせよポインタ理解してないとライブラリ使えなくて詰むでしょ。たぶん突然落ちたりメモリリークだらけのプログラムができあがるはず。
596デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/19(金) 01:25:31.41ID:nbu0jJrl0 グローバル領域に予め必要な変数や配列確保しておけば
メモリーリークが発生する余地はないw
メモリーリークが発生する余地はないw
597デフォルトの名無しさん (ワッチョイ 3f79-k+pP)
2019/07/19(金) 01:28:45.01ID:QK1dwfXD0 ネタで言ってるのか本気で言ってるのか判断が付かない
598デフォルトの名無しさん (ワッチョイ 0f01-/VB7)
2019/07/19(金) 01:46:29.51ID:ZOnA3nWq0 ポインタ難しいって言われてるけどそんなに難しいか?
メモリイメージできれば理解できると思うけどな
メモリイメージできれば理解できると思うけどな
599デフォルトの名無しさん (ワッチョイ 3fc5-k+pP)
2019/07/19(金) 02:19:29.42ID:1jezjf9K0 俺はポインタは難しいことがわかってたから、一度にすべて理解しようとしなかった
数年使って徐々に理解した
それが正解だった
数年使って徐々に理解した
それが正解だった
600デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/19(金) 02:49:16.94ID:ApXEphk20 初期化してないポインタにアクセスするとどうなっちゃうの
とか危険そうなのは試してないからわからないが
ハードウェアのイメージがあれば難しさはあまりない
(命名規則で Xxx_p と書いておけば
とか危険そうなのは試してないからわからないが
ハードウェアのイメージがあれば難しさはあまりない
(命名規則で Xxx_p と書いておけば
601デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/19(金) 06:09:16.79ID:8762T9lH0 > (命名規則で Xxx_p と書いておけば
システムハンガリアンは大大大大大嫌い
システムハンガリアンは大大大大大嫌い
602デフォルトの名無しさん (ドコグロ MM5f-TsWF)
2019/07/19(金) 07:17:09.85ID:gH0zRzIgM603デフォルトの名無しさん (ワッチョイ 7f7c-jGuh)
2019/07/19(金) 09:10:50.31ID:EJb/7aTM0604デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/19(金) 09:29:24.25ID:uab/wKdga >>580
マイコン用の小さいコードも作れるから。
昔のマイコンやPCはメモリが物凄く少ないのでその辺は重要。
少なくとも毎回でかいランタイムライブラリがくっついてしまうようではダメだ。
それと元々 UNIX の記述用に使ってた言語なので Linux 等の互換OSでも使われていて、そういうのが徐々に広まっていったので、それを通してCが流行った面もあると思う。
マイコン用の小さいコードも作れるから。
昔のマイコンやPCはメモリが物凄く少ないのでその辺は重要。
少なくとも毎回でかいランタイムライブラリがくっついてしまうようではダメだ。
それと元々 UNIX の記述用に使ってた言語なので Linux 等の互換OSでも使われていて、そういうのが徐々に広まっていったので、それを通してCが流行った面もあると思う。
605デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/19(金) 09:39:17.61ID:uab/wKdga606デフォルトの名無しさん (ワッチョイ 3fc5-k+pP)
2019/07/19(金) 11:29:42.41ID:1jezjf9K0607デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/19(金) 11:43:44.67ID:nbu0jJrl0 プログラムはZ80からなので、当たり前のようにアセンブラから学習した
CPUの仕組みを学ぶのにちょうど良かった気がする
CPUの仕組みを学ぶのにちょうど良かった気がする
608デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/19(金) 12:47:23.54ID:8762T9lH0 Z80だとパイプラインとかあんまり憶えないよな
でRISCブームのとき苦労させられたと
でRISCブームのとき苦労させられたと
609デフォルトの名無しさん (アークセー Sxa3-7lXP)
2019/07/19(金) 13:03:51.18ID:hLCIQJ7mx まぁZ80全盛期にパイプラインしてたCPUなんて限られてたしな。
そういう汎用コンピータはほぼ高級言語使われてたし。
そういう汎用コンピータはほぼ高級言語使われてたし。
610デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/19(金) 13:07:02.40ID:8762T9lH0 6502とか
611デフォルトの名無しさん (ワッチョイ 7f7c-jGuh)
2019/07/19(金) 13:28:17.26ID:EJb/7aTM0612デフォルトの名無しさん (ワッチョイ 0f01-/VB7)
2019/07/19(金) 14:13:06.92ID:ZOnA3nWq0 ムカデ長老を見習え
613デフォルトの名無しさん (ワッチョイ 0f68-WZlQ)
2019/07/20(土) 21:04:06.20ID:lWqONft90 泣いてる顔文字→( ; ; )がforの無限ループにしか見えないのですが、職業病でしょうか?
614デフォルトの名無しさん (ワッチョイ 3f77-0ngu)
2019/07/20(土) 21:31:18.65ID:TRa6Slo50 8086のアセンブラはセグメントで挫折する・・・と言われてたけど
Z80やってたらすんなり理解できたな。
Z80やってたらすんなり理解できたな。
615デフォルトの名無しさん (ワッチョイ 8fa0-jGuh)
2019/07/21(日) 01:27:26.84ID:3tY7pLz50616デフォルトの名無しさん (ワッチョイ 8f8f-1UnR)
2019/07/21(日) 04:14:55.91ID:Nmc6oncn0 >>615
草、見えたことないわw
草、見えたことないわw
617デフォルトの名無しさん (ワッチョイ 3fad-lraP)
2019/07/21(日) 06:51:52.49ID:F3an1Rtm0618デフォルトの名無しさん (ワッチョイ 3f01-TsWF)
2019/07/21(日) 08:20:20.57ID:/atv33Bt0 >>608
わかりやすいけど面倒だよね
わかりやすいけど面倒だよね
619デフォルトの名無しさん (ワッチョイ 4f61-aZqd)
2019/07/21(日) 15:59:50.66ID:FmQzr+LX0620デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/21(日) 16:10:09.79ID:g8U8cyIO0 forの方が短くてすむじゃないか
621デフォルトの名無しさん (ワッチョイ 0f01-7lXP)
2019/07/21(日) 16:20:48.28ID:PhbbaTTy0622デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/21(日) 16:27:59.21ID:m/GaQUZU0 空白のcontinue節みたいなのに入る必要がないから
ちょっとwhileのほうが早いイメージ
ちょっとwhileのほうが早いイメージ
623デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/21(日) 16:43:59.35ID:g8U8cyIO0 >>622
インタープリターじゃないんだからさ
インタープリターじゃないんだからさ
624デフォルトの名無しさん (ワッチョイ 3f01-TsWF)
2019/07/21(日) 16:52:32.65ID:/atv33Bt0625デフォルトの名無しさん (ワッチョイ 0f48-jGuh)
2019/07/21(日) 18:08:15.14ID:Q0wcPMRB0 for (;;) とwhile (1) がどっちがぱっと見分かりやすいか戦争勃発しますか?
あとfor派は;;周りにスペースを入れるか入れないかでさらに細かく派閥が分かれていると聞きました!
あとfor派は;;周りにスペースを入れるか入れないかでさらに細かく派閥が分かれていると聞きました!
626デフォルトの名無しさん (ワッチョイ 4f61-aZqd)
2019/07/21(日) 18:19:58.86ID:FmQzr+LX0 >>625
まさに永久ループ戦争!
まさに永久ループ戦争!
627デフォルトの名無しさん (ワッチョイ ff2f-Im00)
2019/07/21(日) 18:30:02.78ID:+S54SSox0 字下げのいらないgotoも参戦
628デフォルトの名無しさん (ワッチョイ 0f48-jGuh)
2019/07/21(日) 18:32:50.79ID:Q0wcPMRB0 あ、do {} while(1);派も出てくるとおもうので皆さん頑張ってください応援してます
629デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/21(日) 18:38:59.23ID:g8U8cyIO0 do while(0)は便利
>>629
それは #define で使うときだけでしょう?
それは #define で使うときだけでしょう?
631デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/21(日) 18:44:37.26ID:g8U8cyIO0 いや、エラー判定とかでもよく使うだろ?
632デフォルトの名無しさん (アークセー Sxa3-F8Mm)
2019/07/21(日) 18:48:06.96ID:I0JRxlnTx for (;;) は forever と読むとか
633デフォルトの名無しさん (ワッチョイ 3f01-TsWF)
2019/07/21(日) 18:50:32.60ID:/atv33Bt0 バッドノウハウに近いが
do {
if(...) break;
…
if(…) break;
…
} while(0);
みたいなのは昔書いてたわ
do {
if(...) break;
…
if(…) break;
…
} while(0);
みたいなのは昔書いてたわ
634デフォルトの名無しさん (ワッチョイ 0f48-jGuh)
2019/07/21(日) 18:52:10.72ID:Q0wcPMRB0 do {} while (0); の意味と目的【do while false イディオムの利点】 | MaryCore
ttps://marycore.jp/coding/do-while-false-idiom/
ttps://marycore.jp/coding/do-while-false-idiom/
635デフォルトの名無しさん (ワッチョイ 4f61-aZqd)
2019/07/21(日) 18:58:23.23ID:FmQzr+LX0 flag=true;
while(flag)
{
flag=(....);
}
while(flag)
{
flag=(....);
}
636デフォルトの名無しさん (ワッチョイ 3f01-TsWF)
2019/07/21(日) 19:09:32.73ID:/atv33Bt0 >>634
do {
if (that(value)) break;
if (value == -1) break;
if (value == 0) break;
puts("有効な値です");
} while (0);
みたいなのは
do {
if (
that(value)
|| value == -1
|| value == 0
) break;
puts("有効な値です");
} while (0);
って書けばいいだけ
do {
if (that(value)) break;
value = f(…);
if (value == -1) break;
value = g(…);
if (value == 0) break;
puts("有効な値です");
} while (0);
みたいに間に処理をはさまる場合が難しい
do {
if (that(value)) break;
if (value == -1) break;
if (value == 0) break;
puts("有効な値です");
} while (0);
みたいなのは
do {
if (
that(value)
|| value == -1
|| value == 0
) break;
puts("有効な値です");
} while (0);
って書けばいいだけ
do {
if (that(value)) break;
value = f(…);
if (value == -1) break;
value = g(…);
if (value == 0) break;
puts("有効な値です");
} while (0);
みたいに間に処理をはさまる場合が難しい
637デフォルトの名無しさん (ワッチョイ 0f48-jGuh)
2019/07/21(日) 19:18:11.94ID:Q0wcPMRB0 このスレって直接ここに複数行のソース書き始める人多いよね
638デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/21(日) 19:37:52.68ID:m/GaQUZU0 >>633
小さなスコープを作るため?
小さなスコープを作るため?
639デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/21(日) 19:39:13.75ID:g8U8cyIO0 breakが使えるスコープね
640デフォルトの名無しさん (ワッチョイ 0f68-WZlQ)
2019/07/21(日) 20:14:20.69ID:/SITzbMm0 #define fe for( ; ; )
が最強
が最強
641デフォルトの名無しさん (ワッチョイ ff2f-Im00)
2019/07/21(日) 20:35:26.43ID:+S54SSox0 >633
おかしな事してるのが一目で、continue が外に漏れるこれ オススメ
switch(0)default:{
おかしな事してるのが一目で、continue が外に漏れるこれ オススメ
switch(0)default:{
642デフォルトの名無しさん (スッップ Sd5f-1UnR)
2019/07/21(日) 20:45:42.22ID:R+Rb+3j1d gotoが便利すぎて禁止されがちなのが悪い。ちゃんと使えばコードが見やすくなることこの上なしなのに。
643デフォルトの名無しさん (ワッチョイ 3f01-TsWF)
2019/07/21(日) 21:09:22.26ID:/atv33Bt0644デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/21(日) 21:21:29.94ID:m/GaQUZU0 ないものねだりではありますが
perlのようにブロックやループの頭にラベルをつけて、
redo next last があったらもっと良い
do {...} while(0); も {} と簡潔
perlのようにブロックやループの頭にラベルをつけて、
redo next last があったらもっと良い
do {...} while(0); も {} と簡潔
645デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/21(日) 21:42:59.10ID:ZJZWYLqf0646デフォルトの名無しさん (ワッチョイ 0fab-Pjse)
2019/07/21(日) 21:46:07.68ID:AbjqA2h30 >>621
インデックスのことかも
インデックスのことかも
647デフォルトの名無しさん (ワッチョイ 3f28-t2IU)
2019/07/21(日) 22:36:03.44ID:c+HlyquL0 >グローバル領域に予め必要な変数や配列確保しておけば
>ネタで言ってるのか本気で言ってるのか判断が付かない
実際に仕様なんかがしっかりしているタイプで
メモリー確保が動的に大きく変化しないものなら
実際にそういう風に作っているのを聞いた事は有る
配列式だと動的に確保したり開放したりが無く
リークしたり無効になったりしない分かなり安全
実行開始時に使用する領域が完全に確保されているから
>ネタで言ってるのか本気で言ってるのか判断が付かない
実際に仕様なんかがしっかりしているタイプで
メモリー確保が動的に大きく変化しないものなら
実際にそういう風に作っているのを聞いた事は有る
配列式だと動的に確保したり開放したりが無く
リークしたり無効になったりしない分かなり安全
実行開始時に使用する領域が完全に確保されているから
648デフォルトの名無しさん (スッップ Sd5f-1UnR)
2019/07/21(日) 23:24:53.03ID:R+Rb+3j1d >>645
すまん、そんなに深い意味はない。
すまん、そんなに深い意味はない。
649デフォルトの名無しさん (アウアウエー Sabf-eWIt)
2019/07/22(月) 00:04:19.79ID:PN8KKKdJa 静的な所にプール作るのはメモリ制限ある組込では割とあったと思いますよ
650デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/22(月) 15:35:08.24ID:vmYUDJ0Ja651デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/22(月) 15:37:04.86ID:vmYUDJ0Ja あ、Perlもループにラベル付けてlastで抜けるなんてのあるな。
652デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/22(月) 16:18:33.80ID:QnLUYAOH0 break ラベル で、多重ループから一気に抜けられると便利なんだがな
653デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/22(月) 16:35:14.27ID:rxI3cfFL0 gotoが便利すぎというより
単純な break returnで間にあわないときには
それしか制御がないのでは
単純な break returnで間にあわないときには
それしか制御がないのでは
654デフォルトの名無しさん (ワッチョイ 3fc5-k+pP)
2019/07/22(月) 17:24:33.59ID:7pc0Xm6O0 二重ループから抜けるにはgotoが一番
gotoを廃止した言語制作者は天罰を受けるべき
gotoを廃止した言語制作者は天罰を受けるべき
655デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/22(月) 17:30:50.79ID:rxI3cfFL0 goto はそれで使われている保障がないから、
保守性のためにも
ループなどに名前付けて、それを抜けると明記したい
保守性のためにも
ループなどに名前付けて、それを抜けると明記したい
656デフォルトの名無しさん (アウアウカー Sac3-eWIt)
2019/07/22(月) 17:54:19.31ID:e8FkVPqsa まず多重ループを避けろと
657デフォルトの名無しさん (ワッチョイ 3fab-5Xl5)
2019/07/22(月) 18:05:34.66ID:LktYqlpm0 gccで X Window System (x11) でウインドウつくって画像合成するのって
どうすればできますか? なにかサンプルプログラムなど無いでしょうか?
どうすればできますか? なにかサンプルプログラムなど無いでしょうか?
658デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/22(月) 18:22:30.58ID:QnLUYAOH0659蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-7Trs)
2019/07/22(月) 18:36:31.65ID:zh10SCAHd660蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-7Trs)
2019/07/22(月) 18:39:10.09ID:zh10SCAHd いにしえのシステムなら、関数名をmanコマンドで引けば、X Windowの関数のマニュアルが見られるはず。
661デフォルトの名無しさん (ワッチョイ 3fab-5Xl5)
2019/07/22(月) 18:42:21.76ID:LktYqlpm0662デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/22(月) 18:50:51.45ID:QnLUYAOH0 質問者自身で決定すれば良いと思うが
663蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-7Trs)
2019/07/22(月) 18:54:21.58ID:zh10SCAHd >>661
X11は将来、Waylandにバトンを渡すらしい。新しい端末ではX11が採用されない状況が考えられる。クロスプラットフォームの方が安心かな?
X11は将来、Waylandにバトンを渡すらしい。新しい端末ではX11が採用されない状況が考えられる。クロスプラットフォームの方が安心かな?
664蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-7Trs)
2019/07/22(月) 18:56:55.15ID:zh10SCAHd 暗号化されてないX11をネットワークで見たら丸裸だからあんまり使いたくないよね。
665デフォルトの名無しさん (ワッチョイ 3fab-5Xl5)
2019/07/22(月) 19:02:32.68ID:LktYqlpm0 ネットワーク環境はsshしか使ったこと無いのですが
SDL_net などは関数に暗号化などがふくまれているのですか?
SDL_net などは関数に暗号化などがふくまれているのですか?
666蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-7Trs)
2019/07/22(月) 19:08:12.59ID:zh10SCAHd >>665
ソーシャルゲームを作るなら、暗号化は必須。暗号化方式を決めて、それに合った暗号化専用のライブラリーを使う形になる。
ソーシャルゲームを作るなら、暗号化は必須。暗号化方式を決めて、それに合った暗号化専用のライブラリーを使う形になる。
667デフォルトの名無しさん (ワッチョイ 3fab-5Xl5)
2019/07/22(月) 19:10:57.83ID:LktYqlpm0 >>666
C言語の暗号化ライブラリで使いやすいのおせーてください
C言語の暗号化ライブラリで使いやすいのおせーてください
668蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-7Trs)
2019/07/22(月) 19:22:24.63ID:zh10SCAHd669デフォルトの名無しさん (アウアウカー Sac3-eWIt)
2019/07/22(月) 19:25:19.41ID:MRg17CtQa いろいろあるんですけど、ライセンス的にopensslでいいやみたいな感じになりましたね
waylandは5年後くらいにはなんとかなるんかな。どういうレイヤでサービス提供したいのかよくわからん所がある。
waylandは5年後くらいにはなんとかなるんかな。どういうレイヤでサービス提供したいのかよくわからん所がある。
670デフォルトの名無しさん (ワッチョイ 8f8f-1UnR)
2019/07/22(月) 21:33:35.10ID:tAjmkx+m0 同じくopensslでいいんじゃないかと思いますな
671デフォルトの名無しさん (ワッチョイ 4f25-WSqd)
2019/07/23(火) 03:25:09.81ID:/ZO3BTO70 gchar **command = (gchar *[]){"./Hello.exe","World",NULL};
を gcc6 で compile すると以下の2種類の warning が出ます。
warning: ISO c++11 does not allow conversion from string literal to 'gchar *' (aka 'char *') [-Wwritable-strings]
warning: pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression [-Waddress-of-array-temporary]
どう書くのが正解なのでしょうか? 教えてください。最後の NULL がなければ、
gchar **command = (gchar **)((char [][20]){"./Hello.exe","World"});
で良いと思うのですが、最後の NULL も必要です。よろしくお願いします。
を gcc6 で compile すると以下の2種類の warning が出ます。
warning: ISO c++11 does not allow conversion from string literal to 'gchar *' (aka 'char *') [-Wwritable-strings]
warning: pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression [-Waddress-of-array-temporary]
どう書くのが正解なのでしょうか? 教えてください。最後の NULL がなければ、
gchar **command = (gchar **)((char [][20]){"./Hello.exe","World"});
で良いと思うのですが、最後の NULL も必要です。よろしくお願いします。
672デフォルトの名無しさん (アウアウエー Sabf-eWIt)
2019/07/23(火) 04:01:15.67ID:XJs/DfWFa 要素の文字列をそれぞれキャストしてみるとか?
でも別に文字列の実体を用意した方が無難では。
でも別に文字列の実体を用意した方が無難では。
673デフォルトの名無しさん (ワッチョイ ff2f-Im00)
2019/07/23(火) 05:54:57.80ID:XS6t8zxL0 char * const command[3] = {"./Hello.exe","World"};
674デフォルトの名無しさん (オッペケ Sra3-KwlG)
2019/07/23(火) 09:58:47.20ID:J+ZHGa1Mr 初心者で勉強中なんですが、
switch文は
if文みたく
switch(a >0)のように()の中に関係演算子を使った式はかけないんでしょうか?
エラーがでるので無理なのかなと思ったんですが
switch文は
if文みたく
switch(a >0)のように()の中に関係演算子を使った式はかけないんでしょうか?
エラーがでるので無理なのかなと思ったんですが
675デフォルトの名無しさん (ブーイモ MM0f-lP7j)
2019/07/23(火) 10:46:29.88ID:DdnFitx+M エラーじゃなくて警告では?
動かない理由はないと思うのでgccで試してみたけど、ちゃんと動いたよ。
ただ、結果は1か0の2値しかないのでif文使ったほうが良いと思うよ
動かない理由はないと思うのでgccで試してみたけど、ちゃんと動いたよ。
ただ、結果は1か0の2値しかないのでif文使ったほうが良いと思うよ
676デフォルトの名無しさん (アークセー Sxa3-7lXP)
2019/07/23(火) 10:51:17.50ID:unlUKZmGx 本当は
switch (a) {
case a > 0:
...
的なことをしたかったのではないかとエスパーしてみる。
switch (a) {
case a > 0:
...
的なことをしたかったのではないかとエスパーしてみる。
677デフォルトの名無しさん (ワッチョイ 4f61-aZqd)
2019/07/23(火) 11:36:41.71ID:LSxEgoA20678デフォルトの名無しさん (ワッチョイ 7f7c-jGuh)
2019/07/23(火) 11:42:11.95ID:CU39ntZ20 >>676
switch(true) って裏技 あれマジで気色悪いよね
switch(true) って裏技 あれマジで気色悪いよね
679デフォルトの名無しさん (ブーイモ MMb3-sRGG)
2019/07/23(火) 11:44:08.90ID:SF2VCGvmM case に何を書けばいいんだ?false は 0 でいいだろうけど、true は?
680671 (ワッチョイ 4f25-WSqd)
2019/07/23(火) 11:49:30.09ID:/ZO3BTO70 >>673
>char * const command[3] = {"./Hello.exe","World"};
ありがとうございます。これでも1つめの warning "does not allow conv..." は出ました。皆さんの所では出ませんか?
それと、 command はどうしても char ** 型である必要があります。
仮想端末で何かを実行させる関数 vte_terminal_spawn_async() に与えるためです。
https://developer.gnome.org/vte/unstable/VteTerminal.html#vte-terminal-spawn-async
引き続きアドバイスをお願いします。
>char * const command[3] = {"./Hello.exe","World"};
ありがとうございます。これでも1つめの warning "does not allow conv..." は出ました。皆さんの所では出ませんか?
それと、 command はどうしても char ** 型である必要があります。
仮想端末で何かを実行させる関数 vte_terminal_spawn_async() に与えるためです。
https://developer.gnome.org/vte/unstable/VteTerminal.html#vte-terminal-spawn-async
引き続きアドバイスをお願いします。
681デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/23(火) 11:53:01.06ID:4sm3RNn+0 >>674
書くことはできる
関係式は int 型の 0 または 1 という結果を生じるので
switch (a > 0) は a の値により
switch (0) もしくは
switch (1) と等価になる
おまえさんが言いたいのは switch で範囲チェックができるのか
ということだろうがそれはできない
a と case に指定した定数の == 比較しかできないのが switch だ
不等号や != が使いたければ if 文か3項演算子ということになる
書くことはできる
関係式は int 型の 0 または 1 という結果を生じるので
switch (a > 0) は a の値により
switch (0) もしくは
switch (1) と等価になる
おまえさんが言いたいのは switch で範囲チェックができるのか
ということだろうがそれはできない
a と case に指定した定数の == 比較しかできないのが switch だ
不等号や != が使いたければ if 文か3項演算子ということになる
682671 (ワッチョイ 4f25-WSqd)
2019/07/23(火) 12:04:01.45ID:/ZO3BTO70 >>672
ありがとうございます。具体的にはどうしたら良いでしょうか?
char list[2][20] = {"./Hello.exe","World"};
gchar **command = (gchar **){ (char *)list[0], (char *)list[1], NULL};
だと、↓のエラーになります。
error: function-style cast to a builtin type can only take one argument
正しいやり方をお願いします。
うーむ。どうしたものか。 gchar ** 型をどうやって作るのかさっぱり分からない。。。
ダブルポインタがよく分かってない。もう warning は放っておくしかないのかな?
ありがとうございます。具体的にはどうしたら良いでしょうか?
char list[2][20] = {"./Hello.exe","World"};
gchar **command = (gchar **){ (char *)list[0], (char *)list[1], NULL};
だと、↓のエラーになります。
error: function-style cast to a builtin type can only take one argument
正しいやり方をお願いします。
うーむ。どうしたものか。 gchar ** 型をどうやって作るのかさっぱり分からない。。。
ダブルポインタがよく分かってない。もう warning は放っておくしかないのかな?
683デフォルトの名無しさん (アウアウエー Sabf-eWIt)
2019/07/23(火) 12:10:49.21ID:XJs/DfWFa その前に、671の警告でC++11って出てるのはなぜなのか。
複合リテラルってあれキャストではないよな。知らんけど。
複合リテラルってあれキャストではないよな。知らんけど。
684671 (ワッチョイ 4f25-WSqd)
2019/07/23(火) 12:21:12.41ID:/ZO3BTO70 >>672
gchar list1[][20] = {"../Exe/H2O.exe","World"};
gchar *list2[] = {(gchar *)list1[0], (gchar *)list1[1], NULL};
gchar **command = (gchar **)list2;
いろいろ試したところ、↑だと warning でなくなりました。意図されたのはコレでしょうか?コレで良いでしょうか?
gchar list1[][20] = {"../Exe/H2O.exe","World"};
gchar *list2[] = {(gchar *)list1[0], (gchar *)list1[1], NULL};
gchar **command = (gchar **)list2;
いろいろ試したところ、↑だと warning でなくなりました。意図されたのはコレでしょうか?コレで良いでしょうか?
685デフォルトの名無しさん (ワッチョイ 3fc5-k+pP)
2019/07/23(火) 12:21:15.34ID:d2s+lfJ+0686デフォルトの名無しさん (ワッチョイ 8f1a-aZqd)
2019/07/23(火) 12:22:08.73ID:7yf4dx7Q0 >>680
文字列リテラルは書き換え不可なので当然の警告。
char const* const command[] なら警告は出ないだろうけど、渡した先で書き換えしない保証がないならアウト。
渡した先で書き換えしない保証がないなら、リテラルでの初期化は無理だと思う。
文字列リテラルは書き換え不可なので当然の警告。
char const* const command[] なら警告は出ないだろうけど、渡した先で書き換えしない保証がないならアウト。
渡した先で書き換えしない保証がないなら、リテラルでの初期化は無理だと思う。
687671 (ワッチョイ 4f25-WSqd)
2019/07/23(火) 12:24:46.80ID:/ZO3BTO70688デフォルトの名無しさん (ワッチョイ 3fc5-k+pP)
2019/07/23(火) 12:30:44.31ID:d2s+lfJ+0689デフォルトの名無しさん (ワッチョイ 3fc5-k+pP)
2019/07/23(火) 12:33:40.67ID:d2s+lfJ+0 > warning: ISO c++11 does not allow conversion from string literal to 'gchar *' (aka 'char *') [-Wwritable-strings]
charのエイリアスか
なら最初に書いとけよ
charのエイリアスか
なら最初に書いとけよ
690デフォルトの名無しさん (アウアウエー Sabf-eWIt)
2019/07/23(火) 12:38:30.05ID:XJs/DfWFa >>684
そういう話です。
そういう話です。
691671 (ワッチョイ 4f25-WSqd)
2019/07/23(火) 13:18:08.85ID:/ZO3BTO70692671 (ワッチョイ 4f25-WSqd)
2019/07/23(火) 13:24:51.89ID:/ZO3BTO70 >>683
Makefile には gcc6 と書いてあるのですが、出力をみると c++ でコンパイルしていました。。。
今気づきました。 -std=c++11 もつけてある。
Cのソースを c++ でコンパイルするとマズいですか?今のところ何も問題はないです。
Makefile には gcc6 と書いてあるのですが、出力をみると c++ でコンパイルしていました。。。
今気づきました。 -std=c++11 もつけてある。
Cのソースを c++ でコンパイルするとマズいですか?今のところ何も問題はないです。
693デフォルトの名無しさん (アウアウエー Sabf-eWIt)
2019/07/23(火) 14:56:41.16ID:XJs/DfWFa >>692
C++に複合リテラルないんじゃないかな。なくても困らんか。
あとさっきの配列の要素にstrdup突っ込むとconstにしなくていいかもな。
もしくはmemcpy(malloc(100),"hoge",5)とか。
標準に沿った書き方かどうかは知らん。
C++に複合リテラルないんじゃないかな。なくても困らんか。
あとさっきの配列の要素にstrdup突っ込むとconstにしなくていいかもな。
もしくはmemcpy(malloc(100),"hoge",5)とか。
標準に沿った書き方かどうかは知らん。
694671 (アウアウカー Sac3-WSqd)
2019/07/23(火) 17:13:31.67ID:TCk4qRZWa >>693
ありがとうございます。なるほど、複合リテラルですね。調べてみます。
自分、C で書いていて compile も C でやっているつもりだったんですが、コンパイラが c++ だった。。。
これは c++ 用の Makefile を流用した為です。
最初 c++ でアプリを作ろうとして、Makefile を用意して、ソースを書き始めたのですが、途中で仮想端末オブジェクトが c++ ではうまく使えない事が判明して、
ソースを C に書き変えたのです。Makefile はフラグ等あるので流用してしまった...
これ以上は困らないですかね。困った時にはコンパイラが c++ な為を疑ってみます。
strdup と memcpy も試してみます
これをヒントに検索していて g_strsplit なる関数もある事を発見しました。
ありがとうございます。なるほど、複合リテラルですね。調べてみます。
自分、C で書いていて compile も C でやっているつもりだったんですが、コンパイラが c++ だった。。。
これは c++ 用の Makefile を流用した為です。
最初 c++ でアプリを作ろうとして、Makefile を用意して、ソースを書き始めたのですが、途中で仮想端末オブジェクトが c++ ではうまく使えない事が判明して、
ソースを C に書き変えたのです。Makefile はフラグ等あるので流用してしまった...
これ以上は困らないですかね。困った時にはコンパイラが c++ な為を疑ってみます。
strdup と memcpy も試してみます
これをヒントに検索していて g_strsplit なる関数もある事を発見しました。
695デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/23(火) 18:36:28.60ID:5chEKyGia C++ には引数に void だけって関数がないらしいぞ。
その他細かい違いがあるかも知れないので要注意だ。
その他細かい違いがあるかも知れないので要注意だ。
696デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/23(火) 18:58:12.02ID:Ffr5F2PG0 どちらかというと()の解釈が違う
c++だと()は(void)と同じ
cは()が(void)と同じになる文脈とそうでない文脈がある
c++だと()は(void)と同じ
cは()が(void)と同じになる文脈とそうでない文脈がある
697デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/23(火) 19:36:26.79ID:5chEKyGia こうしてまた(void)論争が始まり3スレぐらい消費されるのであった。
698デフォルトの名無しさん (ワッチョイ 0f01-LIhH)
2019/07/23(火) 19:42:24.88ID:FnKSwmbm0 生兵法家しかいないスレだから仕方ないね
699デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/23(火) 19:45:15.53ID:5chEKyGia また一つ燃料が投下された
700デフォルトの名無しさん (ワッチョイ 7f63-jGuh)
2019/07/23(火) 20:15:50.53ID:xWhG5FgG0 線香花火程度
701デフォルトの名無しさん (ワッチョイ 3fc5-k+pP)
2019/07/23(火) 20:23:08.15ID:d2s+lfJ+0 strdupはいつになったら標準ライブラリに入るんですか?
702デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/23(火) 20:55:09.99ID:4sm3RNn+0 > cは()が(void)と同じになる文脈とそうでない文脈がある
ほほう、それはどんな場合だ? 具体的なコードで示せるか?
ほほう、それはどんな場合だ? 具体的なコードで示せるか?
703デフォルトの名無しさん (ワッチョイ 3fab-5Xl5)
2019/07/23(火) 20:56:28.16ID:LLlz9dHQ0704デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/23(火) 21:08:17.10ID:Ffr5F2PG0 int f();
int f()
{
return 1;
}
int f()
{
return 1;
}
706デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/23(火) 21:47:42.09ID:4sm3RNn+0708デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/23(火) 21:58:12.31ID:Ffr5F2PG0709デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/23(火) 22:01:20.82ID:4sm3RNn+0 >>708
ん、何が言いたい?
ん、何が言いたい?
710デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/23(火) 22:13:17.57ID:Ffr5F2PG0712デフォルトの名無しさん (ワッチョイ 0fb3-o0eX)
2019/07/23(火) 22:31:08.37ID:cffvmBp10713デフォルトの名無しさん (ワッチョイ cfc3-oOeU)
2019/07/23(火) 22:43:31.16ID:Ffr5F2PG0 https://softwareengineering.stackexchange.com/questions/286490/what-is-the-difference-between-function-and-functionvoid
draftだから正規版で変わった可能性もあるが
n1570の133,134ページに記載がある
draftだから正規版で変わった可能性もあるが
n1570の133,134ページに記載がある
714デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/23(火) 23:42:31.01ID:4sm3RNn+0715デフォルトの名無しさん (ワッチョイ 3fad-0ngu)
2019/07/24(水) 02:42:47.45ID:S0ZgllDI0 はっ。ちょっと目を離したスキに(void)ネタだけでもうこんなに書き込みが。
716デフォルトの名無しさん (ワッチョイ ff92-Ev2Q)
2019/07/24(水) 03:03:06.58ID:VPRaWuN40 2進数で表現されている多倍長整数を10進数の文字列に変換する場合、機械語レベルではどうするのが現代風ですか。
レジスタ長までならBCD変換でしょうか?
例えば、Cのprintf(“%d”, 12345)はどういう実装がされますか。
多倍長ならまた違ってきますか。
レジスタ長までならBCD変換でしょうか?
例えば、Cのprintf(“%d”, 12345)はどういう実装がされますか。
多倍長ならまた違ってきますか。
>>716
C++ ですが多桁長演算を書いています。
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
std::ostream &operator<<(std::ostream &stream, mpz_base_class c)
std::ostream &operator<<(std::ostream &stream, mpz_class c)
C++ ですが多桁長演算を書いています。
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
std::ostream &operator<<(std::ostream &stream, mpz_base_class c)
std::ostream &operator<<(std::ostream &stream, mpz_class c)
718デフォルトの名無しさん (ワッチョイ ff92-DGEx)
2019/07/24(水) 06:54:11.66ID:VPRaWuN40719デフォルトの名無しさん (ワッチョイ ff92-DGEx)
2019/07/24(水) 06:55:28.24ID:VPRaWuN40 改めて質問します。
2進数で内部表現されている整数を10進数の文字列に変換する場合、
機械語レベルではどうするのが現代風ですか。
レジスタ長までならBCD変換でしょうか?
例えば、Cのprintf(“%d”, 12345)はどういう実装がされますか。
2進数で内部表現されている整数を10進数の文字列に変換する場合、
機械語レベルではどうするのが現代風ですか。
レジスタ長までならBCD変換でしょうか?
例えば、Cのprintf(“%d”, 12345)はどういう実装がされますか。
720デフォルトの名無しさん (アウアウウー Sad3-9T1T)
2019/07/24(水) 09:34:09.57ID:UuFmwqvta 現代風?
現代だろうが古代だろうが10で割った余りを並べながら10で割る事は変わらんと思うが。(CPUによってはBCDに一発変換なんて命令あるのかな?あればそれ使うと速いだろうね)。
現代だろうが古代だろうが10で割った余りを並べながら10で割る事は変わらんと思うが。(CPUによってはBCDに一発変換なんて命令あるのかな?あればそれ使うと速いだろうね)。
721デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/24(水) 10:27:00.90ID:H/U9sRCS0 JIS X3010:2003
6.7.5.3 関数宣言子(関数原型を含む)
意味規則 宣言“T D1”においてD1 が形式
D ( 仮引数型並び )
又は
D ( 識別子並びopt )
をもつ場合,次のとおりとする。
識別子並びは,関数の仮引数の識別子だけを宣言する。関数定義の一部である関数宣言子で識別子並びが空の場合,関数が仮引数をもたないことを指定する。関数定義の一部でない関数宣言子の識別子並びが空の場合,仮引数の個数及び型の情報がないことを指定する(124)。
(124) “今後の言語の方針”(6.11.6 参照)。
(125) 両方の関数型が“古い形式”の場合,仮引数の型は比較されない。
6.11.6 関数宣言子 空の括弧を伴う関数宣言子(関数原型形式の仮引数型並びではない。)の使用は,廃止予定事項とする。
6.11.7 関数定義 仮引数の識別子並びと宣言並びを別々に与える関数定義(関数原型形式の仮引数の型及び識別子の宣言ではない。)の使用は,廃止予定事項とする。
6.7.5.3 関数宣言子(関数原型を含む)
意味規則 宣言“T D1”においてD1 が形式
D ( 仮引数型並び )
又は
D ( 識別子並びopt )
をもつ場合,次のとおりとする。
識別子並びは,関数の仮引数の識別子だけを宣言する。関数定義の一部である関数宣言子で識別子並びが空の場合,関数が仮引数をもたないことを指定する。関数定義の一部でない関数宣言子の識別子並びが空の場合,仮引数の個数及び型の情報がないことを指定する(124)。
(124) “今後の言語の方針”(6.11.6 参照)。
(125) 両方の関数型が“古い形式”の場合,仮引数の型は比較されない。
6.11.6 関数宣言子 空の括弧を伴う関数宣言子(関数原型形式の仮引数型並びではない。)の使用は,廃止予定事項とする。
6.11.7 関数定義 仮引数の識別子並びと宣言並びを別々に与える関数定義(関数原型形式の仮引数の型及び識別子の宣言ではない。)の使用は,廃止予定事項とする。
722デフォルトの名無しさん (ワッチョイ 3fa5-xTH7)
2019/07/24(水) 10:30:48.21ID:sKxa8jzv0 >>719
こうなっているらしい
printf()のソースコードで、ソースコードリーディングのコツを身に付ける (2/3):main()関数の前には何があるのか(5) - @IT
https://www.atmarkit.co.jp/ait/articles/1703/01/news170_2.html
こうなっているらしい
printf()のソースコードで、ソースコードリーディングのコツを身に付ける (2/3):main()関数の前には何があるのか(5) - @IT
https://www.atmarkit.co.jp/ait/articles/1703/01/news170_2.html
723デフォルトの名無しさん (アウアウカー Sac3-eWIt)
2019/07/24(水) 10:35:17.11ID:q7vPBAFqa ソースのコメントで変数毎に「16進整数」とか「10進整数」とか区別してるのあったけど意味わからんかった。
全部intなのに。
全部intなのに。
724デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/24(水) 10:50:43.56ID:H/U9sRCS0 void f() {} //関数定義の一部である関数宣言子で識別子並びが空の場合,関数が仮引数をもたないことを指定する。
void g(); //関数定義の一部でない関数宣言子の識別子並びが空の場合,仮引数の個数及び型の情報がないことを指定する(124)。
int main()
{
f(1); //NG: 0個の仮引数に1個の実引数
g(1); //OK: 任意の仮引数に1個の実引数
}
void f(); //両方の関数型が“古い形式”の場合,仮引数の型は比較されない。
void g() {} //両方の関数型が“古い形式”の場合,仮引数の型は比較されない。
/*
D:\learn\c>cl 710.c /W4 /nologo /c
710.c
D:\learn\c>gcc 710.c -Wall -std=c18 -c
D:\learn\c>clang-cl 710.c /W4 /c
710.c(6,8): warning: too many arguments in call to 'f'
f(1); //NG: 0<8C><U+0082>?<BC><88><F8><90><94><82><C9>1<8C><U+0082>?<C0><88><F8><90><94>
~ ^
1 warning generated.
D:\learn\c>
*/
void g(); //関数定義の一部でない関数宣言子の識別子並びが空の場合,仮引数の個数及び型の情報がないことを指定する(124)。
int main()
{
f(1); //NG: 0個の仮引数に1個の実引数
g(1); //OK: 任意の仮引数に1個の実引数
}
void f(); //両方の関数型が“古い形式”の場合,仮引数の型は比較されない。
void g() {} //両方の関数型が“古い形式”の場合,仮引数の型は比較されない。
/*
D:\learn\c>cl 710.c /W4 /nologo /c
710.c
D:\learn\c>gcc 710.c -Wall -std=c18 -c
D:\learn\c>clang-cl 710.c /W4 /c
710.c(6,8): warning: too many arguments in call to 'f'
f(1); //NG: 0<8C><U+0082>?<BC><88><F8><90><94><82><C9>1<8C><U+0082>?<C0><88><F8><90><94>
~ ^
1 warning generated.
D:\learn\c>
*/
725デフォルトの名無しさん (ワッチョイ 0f95-k+pP)
2019/07/24(水) 12:11:20.90ID:/HKiGEdd0726デフォルトの名無しさん (アウアウクー MMa3-Ev2Q)
2019/07/24(水) 12:43:12.82ID:PgWkyPpkM >>720
Z80やx86にはBCD関連の命令がありました。
最近のレジスタビット数の大きいプロセッサは知りませんので伺いました。
10で割った余りだと桁数nとしてO(n^2)の計算量になりますよね。
流石にそれはないかなと思っています。
Z80やx86にはBCD関連の命令がありました。
最近のレジスタビット数の大きいプロセッサは知りませんので伺いました。
10で割った余りだと桁数nとしてO(n^2)の計算量になりますよね。
流石にそれはないかなと思っています。
727デフォルトの名無しさん (ラクペッ MM83-6A8M)
2019/07/24(水) 12:53:46.86ID:iTtNhbrVM728デフォルトの名無しさん (アウアウカー Sac3-eWIt)
2019/07/24(水) 13:07:48.35ID:q7vPBAFqa O(n)じゃないか?
x64はもう命令ないんだね
x64はもう命令ないんだね
729デフォルトの名無しさん (アウアウウー Sad3-7lXP)
2019/07/24(水) 13:17:22.40ID:/roNvT5Ja O(n)だね。
文字列変換時にBCDにするのではなく演算からBCDとして扱うプログラムを見たことある。
あまり効率が良いとは思えなかったが。
文字列変換時にBCDにするのではなく演算からBCDとして扱うプログラムを見たことある。
あまり効率が良いとは思えなかったが。
730デフォルトの名無しさん (ワッチョイ 8f01-xAKt)
2019/07/24(水) 17:12:57.35ID:s/qhJVlP0 x64の場合、ALUでやる2ケタの加減乗除の方は廃止だが、FPUでやる18ケタの10進と2進の間の変換はまだ使える
731デフォルトの名無しさん (スップ Sd5f-1UnR)
2019/07/24(水) 17:15:31.56ID:rxR1MP+Fd 聞くのはここでいいのか微妙だけど質問です
abzのエンコーダで回転方向を検知したいんですがzパルスでリセットされるときに回転方向が正しく検知されなくなってしまうところの解決方法どなたか知ってますか
abzのエンコーダで回転方向を検知したいんですがzパルスでリセットされるときに回転方向が正しく検知されなくなってしまうところの解決方法どなたか知ってますか
732デフォルトの名無しさん (アウアウクー MMa3-Ev2Q)
2019/07/24(水) 17:21:50.17ID:PgWkyPpkM >>728
mod 10でO(n)、
それを桁数nに比例した分繰り返すからO(n^2)
と考えています。
O(n)で内部2進表現の整数→10進数の文字列に変換ができればいいのですけどね。
あるいはdecimal型を持つ言語がありますが、そのような型では内部でBCDで持ってたりするのでしょうか。
mod 10でO(n)、
それを桁数nに比例した分繰り返すからO(n^2)
と考えています。
O(n)で内部2進表現の整数→10進数の文字列に変換ができればいいのですけどね。
あるいはdecimal型を持つ言語がありますが、そのような型では内部でBCDで持ってたりするのでしょうか。
733デフォルトの名無しさん (ラクペッ MM83-io3l)
2019/07/24(水) 17:55:29.62ID:YVgDjaZ/M 1桁分のmod 10だけなら計算量は固定なのでO(1)
n桁分を繰り返すなら計算量はO(n)
すべての計算量のオーダーとしてはO(n)
n桁分を繰り返すなら計算量はO(n)
すべての計算量のオーダーとしてはO(n)
734デフォルトの名無しさん (スッップ Sd5f-Ev2Q)
2019/07/24(水) 18:22:37.58ID:+vIzXAhOd >>733
わかりました。
剰余を固定命令数でできる桁数内であればO(n)でできるということですね。
現在、内部2進表現の整数を10進数の文字列に変換する方法としては、mod 10の繰り返しがメジャー(ベスト)ですか?
printfの%dもこの実装が主流でしょうか。
わかりました。
剰余を固定命令数でできる桁数内であればO(n)でできるということですね。
現在、内部2進表現の整数を10進数の文字列に変換する方法としては、mod 10の繰り返しがメジャー(ベスト)ですか?
printfの%dもこの実装が主流でしょうか。
735デフォルトの名無しさん (アウアウカー Sac3-eWIt)
2019/07/24(水) 18:23:32.53ID:q7vPBAFqa modの計算量が固定ってこともないんじゃ?
除数にかなり依存しそうな
除数にかなり依存しそうな
>>718
そうです、10進法変換は表示のときにはじめて実施します
そうです、10進法変換は表示のときにはじめて実施します
741デフォルトの名無しさん (ワッチョイ 0ff6-0ngu)
2019/07/24(水) 21:42:02.70ID:H/U9sRCS0743デフォルトの名無しさん (ワッチョイ ff92-Ev2Q)
2019/07/24(水) 23:16:58.12ID:VPRaWuN40744デフォルトの名無しさん (アウアウカー Sac3-eWIt)
2019/07/24(水) 23:55:14.64ID:gSIpsgHia 秘密はvoidにありそう
745デフォルトの名無しさん (ワッチョイ 062f-9asT)
2019/07/25(木) 00:31:43.06ID:iiNbTbUN0746デフォルトの名無しさん (ワッチョイ 062f-9asT)
2019/07/25(木) 00:55:04.35ID:iiNbTbUN0 あ、2 と 4 で or 取らなきゃダメか
747デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/25(木) 01:12:42.13ID:AQEcWXoca テーブル探す様な方法はないの?
>>747
なるほど…そういう方向性はありえますね
なるほど…そういう方向性はありえますね
749デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/25(木) 06:55:37.49ID:PBP8yj9y0750デフォルトの名無しさん (オイコラミネオ MM0b-+21c)
2019/07/25(木) 10:19:57.39ID:PDyUwndbM >>747
あなんか昔はそういうHWがあったらしい
あなんか昔はそういうHWがあったらしい
751デフォルトの名無しさん (ワッチョイ 1e69-GqBD)
2019/07/25(木) 10:24:34.16ID:PLeF7EkO0 乗算部分はテーブル化しやすそう
除算は何処で軽くするのがいいのか皆目見当がつかねぇ
除算は何処で軽くするのがいいのか皆目見当がつかねぇ
752デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/25(木) 10:39:38.12ID:AQEcWXoca 10進表記に関しては、いきなり割り算するよりはまず9とか99とか999とか9999とかと引き算なり大小比較なりしてもよさそうだけども。
753デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/25(木) 10:43:55.98ID:AQEcWXoca まあ除算は昔からクソ遅いよな
floatで逆数かける感じの方が速そうだ
floatで逆数かける感じの方が速そうだ
754デフォルトの名無しさん (ワッチョイ ab95-wm0+)
2019/07/25(木) 10:50:12.92ID:D8pzUtDE0755デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/25(木) 12:08:29.39ID:UzGMA6uu0 ビットリバーサルについて質問です
誰もがわかりやすく簡単にできる方法は
C言語でどうなるでしょうか?
誰もがわかりやすく簡単にできる方法は
C言語でどうなるでしょうか?
756デフォルトの名無しさん (ドコグロ MM33-lX5B)
2019/07/25(木) 12:33:12.38ID:IOfcNDqSM757デフォルトの名無しさん (ワッチョイ a361-KIok)
2019/07/25(木) 12:35:03.65ID:/OuGEEZ00 整数定数除算は速度優先オプティマイズでアセンブラ出力見てみなよ
758デフォルトの名無しさん (ブーイモ MMaa-xrbd)
2019/07/25(木) 12:53:26.79ID:5Cp6xaylM >>734
隣同士でひっくり返して、2こセットで隣同士でひっくり返して、4こセットで隣同士でひっくり返して…
ってやるらしい。賢いね
uint32_t reverse(uint32_t x) {
x = (((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1));
x = (((x & 0xcccccccc) >> 2) | ((x & 0x33333333) << 2));
x = (((x & 0xf0f0f0f0) >> 4) | ((x & 0x0f0f0f0f) << 4));
x = (((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8));
return ((x >> 16) | (x << 16));
}
隣同士でひっくり返して、2こセットで隣同士でひっくり返して、4こセットで隣同士でひっくり返して…
ってやるらしい。賢いね
uint32_t reverse(uint32_t x) {
x = (((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1));
x = (((x & 0xcccccccc) >> 2) | ((x & 0x33333333) << 2));
x = (((x & 0xf0f0f0f0) >> 4) | ((x & 0x0f0f0f0f) << 4));
x = (((x & 0xff00ff00) >> 8) | ((x & 0x00ff00ff) << 8));
return ((x >> 16) | (x << 16));
}
759デフォルトの名無しさん (ブーイモ MMaa-xrbd)
2019/07/25(木) 12:55:25.80ID:5Cp6xaylM おっと>>755の間違い
760デフォルトの名無しさん (ドコグロ MM33-lX5B)
2019/07/25(木) 13:08:04.63ID:IOfcNDqSM >>755
簡単でわかり易いと言うなら素直にビット毎に処理すればいいと思う
unsigned int x = …;
unsigned int y = 0;
for(size_t i = 0; i < 32; i++){
y <<= 1;
y |= x & 1;
x >>= 1;
}
てな感じ
高速化したいならテーブル引くなりすればいいかと
簡単でわかり易いと言うなら素直にビット毎に処理すればいいと思う
unsigned int x = …;
unsigned int y = 0;
for(size_t i = 0; i < 32; i++){
y <<= 1;
y |= x & 1;
x >>= 1;
}
てな感じ
高速化したいならテーブル引くなりすればいいかと
761デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/25(木) 13:31:47.50ID:UzGMA6uu0762デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/25(木) 13:33:38.69ID:UzGMA6uu0 高速フーリエ変換でのビットリバーサルの書き方がどんなものがあるのか興味があったのでききました
ビットリバーサルでの処理では速度は余り変わらそうなのでわかりやすい
表記で書こうとおもいます
ビットリバーサルでの処理では速度は余り変わらそうなのでわかりやすい
表記で書こうとおもいます
>>754
その逆数を実時間で効率的に求める方法はありますかね…あらかじめ求めておくというのは除いたとして
その逆数を実時間で効率的に求める方法はありますかね…あらかじめ求めておくというのは除いたとして
765デフォルトの名無しさん (ワッチョイ 87c3-MmDk)
2019/07/25(木) 20:09:17.88ID:S7g95QIG0 BCDじゃなく10bitで10進3桁表すieee 754-2008のdecimal floating pointだと、回路的にそこまで無駄じゃないよね
766デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/25(木) 20:28:09.79ID:AQEcWXoca >>764
ニュートン法とか?
ニュートン法とか?
767デフォルトの名無しさん (ドコグロ MM7f-lX5B)
2019/07/25(木) 20:40:39.43ID:2UHg/Et4M768デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/25(木) 20:56:17.18ID:UzGMA6uu0 加算 減算 乗算 除算 って回路的にどうやってるんだ?
マルチバイブレータ系の回路が基本になってるのはわかるけど
詳細部でどうやってるんだ?
マルチバイブレータ系の回路が基本になってるのはわかるけど
詳細部でどうやってるんだ?
769デフォルトの名無しさん (ワッチョイ 6b01-GqBD)
2019/07/25(木) 21:14:22.23ID:mnPttr/b0 log通った後だと 乗算が加算に 除算が減算になるけど
log通して加減算した後に累乗で戻すほうが重いんじゃろな
log通して加減算した後に累乗で戻すほうが重いんじゃろな
770デフォルトの名無しさん (ワッチョイ 6b01-dJ+e)
2019/07/25(木) 21:23:45.17ID:zGmF5f4I0771デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/25(木) 21:49:16.57ID:UzGMA6uu0 >>770
加減算のXORの場合 繰り上がりはどうやってるんだ?
加減算のXORの場合 繰り上がりはどうやってるんだ?
772デフォルトの名無しさん (ワッチョイ 8a01-lX5B)
2019/07/25(木) 22:44:02.09ID:nrEjL4Jo0773デフォルトの名無しさん (アウアウカー Saeb-vYo8)
2019/07/25(木) 22:52:27.40ID:fhhE/m2Aa 繰り上がりはand
ただ実際は一気にがばっと先読みするので、すぐ下の桁だけに依存するわけではない
ただ実際は一気にがばっと先読みするので、すぐ下の桁だけに依存するわけではない
774デフォルトの名無しさん (ブーイモ MMc7-Yj82)
2019/07/25(木) 23:15:13.43ID:ulXo9PgcM お前らコンピュータアーキテクチャの勉強もしたことないのか?
775デフォルトの名無しさん (ワッチョイ 1e63-/0C9)
2019/07/25(木) 23:18:36.17ID:QJIil52G0 ビジコン嶋さんがアップをはじめました
776デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 00:14:46.69ID:jqp1LWPO0777デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 00:22:06.93ID:jqp1LWPO0 キャリールックアヘッドアダー っていう加算器の高速化手法もあるんかぁw
779デフォルトの名無しさん (ブーイモ MMc7-Yj82)
2019/07/26(金) 08:36:36.41ID:MNOQNbTnM またまたいい加減なことを。
2入力ゲートだけでCLA作れるし、2入力ゲートだけのRCAより速いよ。
2入力ゲートだけでCLA作れるし、2入力ゲートだけのRCAより速いよ。
780デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 09:14:13.64ID:93rRyCwBa そりゃ多入力ゲートが2入力で模倣できるって言ってるだけでは
781デフォルトの名無しさん (ブーイモ MMc7-Yj82)
2019/07/26(金) 09:22:46.42ID:MNOQNbTnM 同じ入力数に制約しても速いって言ってんの
782デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/26(金) 10:49:53.96ID:klJ/NeRW0 マルチエミッタって、スイッチング速いんだっけ?
783デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 13:02:58.65ID:BFOSMSUh0 スレチですみません
ここの人達は「プログラム」と聞いたときにどちらを思い浮かべますか?
* バイナリ
* コードが書かれたファイル
* コード
ここの人達は「プログラム」と聞いたときにどちらを思い浮かべますか?
* バイナリ
* コードが書かれたファイル
* コード
784デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/26(金) 13:05:55.53ID:klJ/NeRW0 ROMにプログラム(書込)するのはバイナリ
785デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 13:08:13.51ID:BFOSMSUh0786デフォルトの名無しさん (ワッチョイ 0aa5-Iugu)
2019/07/26(金) 13:18:25.37ID:y8y8TCfK0 はい
あなたの考えは一切の曇り無く隅々まで正しいです
なのであなたの理解が最も正しいです
それについてわたくしどもは一切口出しすべきことはございません
あなたこそが正しいです
あなたの考えは一切の曇り無く隅々まで正しいです
なのであなたの理解が最も正しいです
それについてわたくしどもは一切口出しすべきことはございません
あなたこそが正しいです
787デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 13:27:35.81ID:BFOSMSUh0788デフォルトの名無しさん (アークセー Sx23-dJ+e)
2019/07/26(金) 13:36:27.21ID:IwSB/YRzx >>787
どうやら貴方はプログラムより先に国語を勉強したほうが良いようだ。
どうやら貴方はプログラムより先に国語を勉強したほうが良いようだ。
789デフォルトの名無しさん (ワッチョイ 0aa5-Iugu)
2019/07/26(金) 13:37:37.41ID:y8y8TCfK0 ンなことカンケーなしに「俺はこう思ってる」「正解をくれ」を最初の>>783に書けばいいじゃん
なんでお前のお気持ちを察しなきゃいけないワケ
後出しジャンケンのコミュニケーション不全の物体だからマンセー要員しか求めてない
「どちらを思い浮かべますか?」と聞いてるんだから、
オレが思い浮かべるだけなら正解も不正解もない、
なのにいきなり「合ってる」とか言いだすとと値踏みされてるから不快だ
なんでお前なんかに正誤判定されなきゃいけないの
正解を求めている旨を最初>>783に書いてないからコミュニケーション不全だ
一見自由そうに見えるアンケートを取っておいて、それが合格か不合格かテメー独自のお気持ちで決めて人間を値踏みする、
その思考経路がアレすぎ
なんでお前のお気持ちを察しなきゃいけないワケ
後出しジャンケンのコミュニケーション不全の物体だからマンセー要員しか求めてない
「どちらを思い浮かべますか?」と聞いてるんだから、
オレが思い浮かべるだけなら正解も不正解もない、
なのにいきなり「合ってる」とか言いだすとと値踏みされてるから不快だ
なんでお前なんかに正誤判定されなきゃいけないの
正解を求めている旨を最初>>783に書いてないからコミュニケーション不全だ
一見自由そうに見えるアンケートを取っておいて、それが合格か不合格かテメー独自のお気持ちで決めて人間を値踏みする、
その思考経路がアレすぎ
790デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 13:43:27.73ID:BFOSMSUh0 アンケート取ったのはどっちが一般的なのか知りたかったからですよ
そんなにカッカしないでください
一般的かどうかに私の主観は関係ないでしょ?
そんなにカッカしないでください
一般的かどうかに私の主観は関係ないでしょ?
791デフォルトの名無しさん (ワッチョイ 6b01-EEtm)
2019/07/26(金) 13:44:53.75ID:Tl4mZNhI0 一連の処理(命令)を書いたものがプログラムだろ
それを書く作業がプログラミングだろ
何が疑問なのかよくわからん
それを書く作業がプログラミングだろ
何が疑問なのかよくわからん
792デフォルトの名無しさん (アウアウウー Sacf-hHEI)
2019/07/26(金) 13:48:17.76ID:jd9kxs4Ca >>783
テレビ番組表
テレビ番組表
793デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 13:59:21.82ID:BFOSMSUh0 >>791
そうなんですが、プログラムって言葉がけっこう色んな意味で使われていて、調べていると混乱するんですよね……
そうなんですが、プログラムって言葉がけっこう色んな意味で使われていて、調べていると混乱するんですよね……
794デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/26(金) 13:59:36.19ID:klJ/NeRW0795デフォルトの名無しさん (ワッチョイ 6b01-EEtm)
2019/07/26(金) 14:09:18.87ID:Tl4mZNhI0796デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 14:20:35.08ID:BFOSMSUh0797デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 14:22:29.61ID:BFOSMSUh0 あとプログラムとコードの違いもよくわかりません
コードだって命令を書いたものじゃないですか
それだとプログラム=コードということになりませんか?
コードだって命令を書いたものじゃないですか
それだとプログラム=コードということになりませんか?
798デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 14:34:16.48ID:6botN/6Ha >>796
voidに秘密がありそうですよ
voidに秘密がありそうですよ
799デフォルトの名無しさん (ワッチョイ 4ac5-wm0+)
2019/07/26(金) 14:39:22.98ID:BFOSMSUh0 >>798
「プログラミング=プログラムを作ること」なら、日本語の命令を書くことはプログラミングなのかという疑問が生まれませんか?
人間に与える日本語の命令を書いた場合、それはプログラミングと言えるのでしょうか?
「プログラミング=プログラムを作ること」なら、日本語の命令を書くことはプログラミングなのかという疑問が生まれませんか?
人間に与える日本語の命令を書いた場合、それはプログラミングと言えるのでしょうか?
800デフォルトの名無しさん (ワッチョイ 6b01-EEtm)
2019/07/26(金) 14:41:27.15ID:Tl4mZNhI0 バイナリもアプリもソースコードもプログラムを内包するってことだろ
801デフォルトの名無しさん (ワッチョイ 6b01-EEtm)
2019/07/26(金) 14:45:23.07ID:Tl4mZNhI0 IT分野の話じゃないならスレチもいいとこだな
そんなの辞書引けば分かるだろ
そんなの辞書引けば分かるだろ
802デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/26(金) 14:49:00.72ID:klJ/NeRW0803デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 14:51:29.48ID:6botN/6Ha verilogはなんとプログラミング言語ではない
804デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 14:59:57.10ID:jqp1LWPO0805デフォルトの名無しさん (ワッチョイ 1e69-GqBD)
2019/07/26(金) 15:15:37.98ID:qJvv7Eyl0 CPUの立場では、メモリ上に展開されている機械語のバイナリ列がプログラム
OSの立場では、実行ファイルがプログラム
C言語で記述する人にとっては、ソースファイル(郡)がプログラム
どのレイヤーの話かで意味が変わってくる可能性
OSの立場では、実行ファイルがプログラム
C言語で記述する人にとっては、ソースファイル(郡)がプログラム
どのレイヤーの話かで意味が変わってくる可能性
806デフォルトの名無しさん (スププ Sdaa-wvYg)
2019/07/26(金) 15:15:43.78ID:ueBQXQ8Kd ムッとしたってちょっと可愛い
807デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 15:18:34.64ID:jqp1LWPO0 機械にとっては機械語だけで充分なのに
人間の理解にとって高級言語は必要最低限
認識のちがいとか感受性 によって見方はかわるんかな?w
人間の理解にとって高級言語は必要最低限
認識のちがいとか感受性 によって見方はかわるんかな?w
808デフォルトの名無しさん (ワッチョイ 87d2-KIok)
2019/07/26(金) 15:25:46.61ID:blDrgyi50 用語なんて初めて使われた時の意味、定義化された時の意味、実際に使われてる場面での意味、
全部違ってることなんてザラでしょ。
全部違ってることなんてザラでしょ。
809デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/26(金) 15:56:34.19ID:klJ/NeRW0810デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 15:56:40.90ID:jqp1LWPO0811デフォルトの名無しさん (アウアウウー Sacf-hHEI)
2019/07/26(金) 17:11:28.14ID:/z54YWNEa >>799
言える。これだもの。
プログラム(program)
[名](スル)
1 ある物事の進行状態についての計画や予定。予定表。「新人教育のプログラム」
2 演劇・映画・音楽会・テレビなどの演目・曲目・番組。また、出演者の紹介、解説などを印刷した小冊子や番組表。「雨天によりプログラムが一部変更された」
3 コンピューターへ指示する、計算や仕事の手順を特定の言語や形式で書いたもの。また、それを作ること。
言える。これだもの。
プログラム(program)
[名](スル)
1 ある物事の進行状態についての計画や予定。予定表。「新人教育のプログラム」
2 演劇・映画・音楽会・テレビなどの演目・曲目・番組。また、出演者の紹介、解説などを印刷した小冊子や番組表。「雨天によりプログラムが一部変更された」
3 コンピューターへ指示する、計算や仕事の手順を特定の言語や形式で書いたもの。また、それを作ること。
812デフォルトの名無しさん (アウアウウー Sacf-hHEI)
2019/07/26(金) 17:16:39.70ID:/z54YWNEa 更に、日本語のコンピュータ用のプログラムというのもある。
昔々のピュータのBASICだとか、C言語でも関数名や変数名その他に漢字使えるのあったし、Javaとかでも識別子に漢字使えるし。
昔々のピュータのBASICだとか、C言語でも関数名や変数名その他に漢字使えるのあったし、Javaとかでも識別子に漢字使えるし。
813デフォルトの名無しさん (アウアウウー Sacf-hHEI)
2019/07/26(金) 17:19:19.65ID:/z54YWNEa あ、ピュータじゃなくてぴゅう太だな。
https://ja.m.wikipedia.org/wiki/%E3%81%B4%E3%82%85%E3%81%86%E5%A4%AA
https://ja.m.wikipedia.org/wiki/%E3%81%B4%E3%82%85%E3%81%86%E5%A4%AA
814デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 17:44:43.58ID:6botN/6Ha utf8が普及して、今の方がむしろ普通に日本語使えるようになったと思うよ
815デフォルトの名無しさん (ドコグロ MMc2-lX5B)
2019/07/26(金) 18:04:58.65ID:/WSqmbNMM だな、今時メジャーな環境で識別子に漢字とか使えない方が珍しい
816デフォルトの名無しさん (ワッチョイ 7bab-lSLr)
2019/07/26(金) 18:20:14.54ID:4cv+0ZCY0 絵文字が普及して外人の作るプログラムがマルチバイト文字に完全に対応してきた
それまでは結構ダメダメだった
それまでは結構ダメダメだった
817デフォルトの名無しさん (ワッチョイ 8af9-KIok)
2019/07/26(金) 20:18:37.20ID:PsTZ+gqN0 識別子に漢字使えるのにスペースは全角だとコンパイルエラーなのがちょっと納得いかない
818デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 20:49:01.65ID:jqp1LWPO0 0xE38080がUTFのスペース
0x20 がアスキーコード
いまやってみたら全然ちがうやんかw
0x20 がアスキーコード
いまやってみたら全然ちがうやんかw
819デフォルトの名無しさん (アウアウウー Sacf-rJif)
2019/07/26(金) 20:51:55.69ID:XFvYTg6ka >>779
>2入力ゲートだけでCLA作れるし
そんなことをしたら「素子数ばかり馬鹿みたいに食らって速度はリップルキャリーと同一の遅さ」で、なんのためのキャリールックアヘッドなのかわからない、という悲惨な結果になりませんか?
>2入力ゲートだけでCLA作れるし
そんなことをしたら「素子数ばかり馬鹿みたいに食らって速度はリップルキャリーと同一の遅さ」で、なんのためのキャリールックアヘッドなのかわからない、という悲惨な結果になりませんか?
>>781
ありえないですね、キャリールックアヘッドは多入力で速度を稼ぐやりかたですよ、2入力に制限したらリップルキャリーと全然かわらないじゃないですか?
ありえないですね、キャリールックアヘッドは多入力で速度を稼ぐやりかたですよ、2入力に制限したらリップルキャリーと全然かわらないじゃないですか?
822デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 21:24:29.66ID:jqp1LWPO0 キャッシュの容量とかパイプラインのちょうどいい区切りとか
まで考えてプログラミングなんてはっきり言ってやってませんw
手抜きでしょうか?
まで考えてプログラミングなんてはっきり言ってやってませんw
手抜きでしょうか?
823デフォルトの名無しさん (ワッチョイ a3da-304k)
2019/07/26(金) 21:50:39.91ID:OWnIAxmG0 演算器の設計 - 加算器(Adder)
https://news.mynavi.jp/article/computer_architecture-70/
演算器の設計 - キャリールックアヘッドアダー(1)
https://news.mynavi.jp/article/computer_architecture-71/
演算器の設計 - キャリールックアヘッドアダー(2)
https://news.mynavi.jp/article/computer_architecture-72/
パラレルプリフィックスアダー
https://news.mynavi.jp/article/architecture-73/
パラレルプリフィックスアダー(2)
https://news.mynavi.jp/article/architecture-74/
パラレルプリフィックスアダー(3)
https://news.mynavi.jp/article/architecture-75/
Lingアダー
https://news.mynavi.jp/article/architecture-76/
アダーの実装に関して
https://news.mynavi.jp/article/architecture-77/
https://news.mynavi.jp/article/computer_architecture-70/
演算器の設計 - キャリールックアヘッドアダー(1)
https://news.mynavi.jp/article/computer_architecture-71/
演算器の設計 - キャリールックアヘッドアダー(2)
https://news.mynavi.jp/article/computer_architecture-72/
パラレルプリフィックスアダー
https://news.mynavi.jp/article/architecture-73/
パラレルプリフィックスアダー(2)
https://news.mynavi.jp/article/architecture-74/
パラレルプリフィックスアダー(3)
https://news.mynavi.jp/article/architecture-75/
Lingアダー
https://news.mynavi.jp/article/architecture-76/
アダーの実装に関して
https://news.mynavi.jp/article/architecture-77/
824デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 22:01:03.66ID:rLMbRFKca >>824
>文字通り先読みが本質だと思いますよ
薄っぺらい理解ですね
3 bit, 4 bit なりの アッダーを決めて、その MSB の和を作るのに必要な入力をじっと眺めて本質をつかんでください
単なる先読みではありませんよ
>ゲートはいくつあってもいい
速くなるならね
でも 2 入力論理演算だけで作ったキャリールックアヘッドは速くならない…
>文字通り先読みが本質だと思いますよ
薄っぺらい理解ですね
3 bit, 4 bit なりの アッダーを決めて、その MSB の和を作るのに必要な入力をじっと眺めて本質をつかんでください
単なる先読みではありませんよ
>ゲートはいくつあってもいい
速くなるならね
でも 2 入力論理演算だけで作ったキャリールックアヘッドは速くならない…
826デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 22:18:01.82ID:rLMbRFKca >>826
ご発言の意味が掴みきれません
ご発言の意味が掴みきれません
828デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 22:29:27.26ID:rLMbRFKca >>827
そりゃもう、読んでないですからね
そりゃもう、読んでないですからね
829デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 22:40:58.04ID:jqp1LWPO0 ディスクリートトランジスタでマルチバイブレータを組んでそれで
カウンタ組んだの思い出したw
動くと感動するよね!w
カウンタ組んだの思い出したw
動くと感動するよね!w
830デフォルトの名無しさん (ワッチョイ 068c-/dZp)
2019/07/26(金) 22:54:34.12ID:uEgiR7UH0 現在はキャリー選択アダーに集約された
831デフォルトの名無しさん (アウアウエー Sa82-vYo8)
2019/07/26(金) 22:58:11.64ID:rLMbRFKca 分岐予測みたいなの?
832デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 23:13:04.56ID:jqp1LWPO0 基本はマルチバイブレータでつくった順序回路w
なんだもんなぁw
なんだもんなぁw
833デフォルトの名無しさん (ワッチョイ ab95-wm0+)
2019/07/26(金) 23:28:36.00ID:PBeJ5BeU0 この言語は扱うものが多くて頭がオーバーフローします
たとえば正規表現は
int regcomp(regex_t *preg, const char *regex, int cflags)
int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
void regfree(regex_t *preg)
これを見る度に数がおおくて何書いているのか分からなくなる
たとえば正規表現は
int regcomp(regex_t *preg, const char *regex, int cflags)
int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
void regfree(regex_t *preg)
これを見る度に数がおおくて何書いているのか分からなくなる
834デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 23:35:15.29ID:jqp1LWPO0 コンパイラつくってるんか?
835デフォルトの名無しさん (ワッチョイ ab95-wm0+)
2019/07/26(金) 23:41:52.05ID:PBeJ5BeU0 いいえ
コマンドライン引数の場合訳に正規表現がつかえると嬉しいのです
コマンドライン引数の場合訳に正規表現がつかえると嬉しいのです
836デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/26(金) 23:48:25.73ID:jqp1LWPO0 >>835
たとえばどんな引数?
たとえばどんな引数?
837デフォルトの名無しさん (ワッチョイ 6b01-+Thh)
2019/07/26(金) 23:48:58.54ID:Tl4mZNhI0 JSのmatchみたいなラッパー書けばいいじゃん
838デフォルトの名無しさん (ワッチョイ ab95-wm0+)
2019/07/27(土) 00:05:22.95ID:1cAkezH+0839デフォルトの名無しさん (ワッチョイ a32c-Yj82)
2019/07/27(土) 09:19:50.11ID:zJ973H0i0840デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/27(土) 09:22:21.76ID:S4xnN4vA0 w
>>839
普通にトーナメント方式に15個ならべますよ
普通にトーナメント方式に15個ならべますよ
842デフォルトの名無しさん (ワッチョイ a32c-Yj82)
2019/07/27(土) 10:00:34.00ID:zJ973H0i0 >>841
じゃ、RCAは遅延がO(n)で、CLAはN入力ゲートがあるならO(1)、2入力ゲートに制限してもO(log n)って気づくだろ。
じゃ、RCAは遅延がO(n)で、CLAはN入力ゲートがあるならO(1)、2入力ゲートに制限してもO(log n)って気づくだろ。
843デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/27(土) 10:08:46.04ID:S4xnN4vA0 qzは話通じてなさそうだな
>>842
そうか log n くらいには改善されるわけですね…てへぺろ
そうか log n くらいには改善されるわけですね…てへぺろ
845デフォルトの名無しさん (ワッチョイ de12-xrbd)
2019/07/27(土) 12:29:43.04ID:x/Y2IYID0 相変わらずの屑っぷり
846デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/27(土) 22:29:55.84ID:7WTVPtxd0 ゲート容量分の時間誤差は絶対生まれるかんな(´・ω・`)
847デフォルトの名無しさん (ワッチョイ a32c-Yj82)
2019/07/27(土) 23:01:09.08ID:zJ973H0i0 意味のわからん時間誤差とかいう用語、未定義で使うな
848デフォルトの名無しさん (ワッチョイ 8aad-hCJc)
2019/07/27(土) 23:32:10.40ID:AqzO7oC20849デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/27(土) 23:44:22.86ID:7WTVPtxd0 >>848
それって正規表現をどう変換する関数なの?
それって正規表現をどう変換する関数なの?
850デフォルトの名無しさん (ワッチョイ 87c3-MmDk)
2019/07/27(土) 23:54:17.87ID:p4Dr/Hvv0 regexpをcompileするって概念はスクリプト言語ですら大抵存在するのに
NFAやらDFAやらだったり専用VMのバイトコードに落としたりと色々だろ
NFAやらDFAやらだったり専用VMのバイトコードに落としたりと色々だろ
851デフォルトの名無しさん (ワッチョイ 8aad-hCJc)
2019/07/28(日) 00:01:11.58ID:JTvgZUGV0852デフォルトの名無しさん (ワッチョイ 8aad-hCJc)
2019/07/28(日) 00:05:40.59ID:JTvgZUGV0 まあしかし>>838に書いてあるような内容なら正規表現使わないで単純な比較をするだけの方が速いしプログラムもわかりやすくなるような気がするなあ。
853デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/28(日) 00:58:43.04ID:bTD+Zgyn0854デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/28(日) 01:00:17.13ID:bTD+Zgyn0 C言語のソースメモをオートインデントして整理しようとプログラムくんだけど
こういった関数つかって分岐かけていったほうが完璧なんかな?
でも時間すごい掛かりそうw
こういった関数つかって分岐かけていったほうが完璧なんかな?
でも時間すごい掛かりそうw
855蟻人間 ◆T6xkBnTXz7B0 (スププ Sdaa-2HKN)
2019/07/28(日) 07:30:52.18ID:S9RT+Rd/d >>854
そのプログラムを書く手間を自動化してみては?
そのプログラムを書く手間を自動化してみては?
856デフォルトの名無しさん (ワッチョイ 7bf6-ZVB1)
2019/07/28(日) 07:43:00.67ID:OCkB7AjV0 unixのindentコマンドか
本末転倒を体現する変なやつ
本末転倒を体現する変なやつ
857デフォルトの名無しさん (アウアウウー Sacf-hHEI)
2019/07/28(日) 16:13:19.81ID:kBOAQwNYa858デフォルトの名無しさん (ワッチョイ 1e63-/0C9)
2019/07/28(日) 16:21:28.48ID:QNzNEkbM0 たくさんあるとなると「空白」の検索めんどくない?
859デフォルトの名無しさん (ワッチョイ 0aab-96Ml)
2019/07/28(日) 17:31:05.61ID:bTD+Zgyn0 >>856
何もオプションを付けないindentコマンドを実行すると
予想外のソースコードが出てくる可能性が高い とか書いてるひといるね!
インデントフォーマットって好みが人それぞれ違うから自分専用のもっててもええのかも?w
何もオプションを付けないindentコマンドを実行すると
予想外のソースコードが出てくる可能性が高い とか書いてるひといるね!
インデントフォーマットって好みが人それぞれ違うから自分専用のもっててもええのかも?w
860デフォルトの名無しさん (アウアウウー Sacf-hHEI)
2019/07/28(日) 19:58:58.85ID:H3r8YGb9a >>858
そう。面倒だよ。
ま、しかし、wchar_t型使えるならiswspace()とか色々判定する関数が使える。
http://www.c-tipsref.com/reference/wctype.html
そう。面倒だよ。
ま、しかし、wchar_t型使えるならiswspace()とか色々判定する関数が使える。
http://www.c-tipsref.com/reference/wctype.html
861デフォルトの名無しさん (スププ Sdaa-6AdZ)
2019/07/29(月) 21:48:56.61ID:CSar0obtd862デフォルトの名無しさん (アウアウウー Sacf-hHEI)
2019/07/30(火) 19:03:35.73ID:6XKWfMZ+a >>861
グロ
グロ
863デフォルトの名無しさん (ワッチョイ eda3-hJCQ)
2019/08/01(木) 00:35:30.91ID:0yunxMSQ0 >>817
Whitespaceごっこできないようにだろw
Whitespaceごっこできないようにだろw
864デフォルトの名無しさん (ワッチョイ 2df0-GevM)
2019/08/04(日) 23:25:49.23ID:xIOvQDiR0 c言語って今どんな仕事あんの?
865デフォルトの名無しさん (ワッチョイ 0501-LGjB)
2019/08/05(月) 05:36:47.62ID:QAwvndB40 >>864
ハードと無線の知識があればIoTが花盛り。
ハードと無線の知識があればIoTが花盛り。
866デフォルトの名無しさん (アウアウウー Sa09-XqET)
2019/08/05(月) 18:15:51.34ID:ffPl9KHXa 機械の試運転してるんだけど組み込みの部署に行きたい。どう勉強すればええ?
867デフォルトの名無しさん (ワッチョイ 75da-/7DC)
2019/08/05(月) 18:38:57.75ID:LSG3ddZk0 機械の試運転とは?
868デフォルトの名無しさん (アウアウウー Sa09-XqET)
2019/08/05(月) 19:55:27.73ID:ffPl9KHXa >>867
配線やら電気系のことして実際に動くかどうかを確認して不具合が出たら直す仕事
配線やら電気系のことして実際に動くかどうかを確認して不具合が出たら直す仕事
869デフォルトの名無しさん (ドコグロ MM93-EOJ1)
2019/08/05(月) 20:02:47.76ID:s1STjseDM870デフォルトの名無しさん (ワッチョイ 25f6-7ShF)
2019/08/05(月) 20:55:17.19ID:sY7ZsQgE0 >>868
電子じゃない電気なの?
電子じゃない電気なの?
871デフォルトの名無しさん (ワッチョイ cb63-0ks1)
2019/08/05(月) 21:11:13.17ID:9k1HrfSt0 ひょっとしてシーケンサー?
872デフォルトの名無しさん (アウアウウー Sa09-XqET)
2019/08/05(月) 22:17:01.04ID:ffPl9KHXa873デフォルトの名無しさん (アウアウエー Sa13-x4/I)
2019/08/05(月) 23:05:42.62ID:80MqE3Goa 車載系の仕事は最近多いよ
でもCじゃなくてC++だと思う。規格的に。
でもCじゃなくてC++だと思う。規格的に。
874デフォルトの名無しさん (ワッチョイ ad63-7p+E)
2019/08/07(水) 00:38:42.49ID:TX6V/c5+0 だいぶ前(20年ぐらい前)からですが
C言語で配列の範囲オーバーすると
ほぼ必ずSegmentation Faultになるようになった
メモリ上の配置を考えたら
ちょっと範囲オーバーしたからって滅茶苦茶な値を読み込みながら普通に動くはず
毎回コンパイラが範囲チェックするようなマシン語吐いてるんでしょうか?
C言語で配列の範囲オーバーすると
ほぼ必ずSegmentation Faultになるようになった
メモリ上の配置を考えたら
ちょっと範囲オーバーしたからって滅茶苦茶な値を読み込みながら普通に動くはず
毎回コンパイラが範囲チェックするようなマシン語吐いてるんでしょうか?
875デフォルトの名無しさん (アウアウエー Sa13-x4/I)
2019/08/07(水) 00:49:22.22ID:xA4g5oLMa でかいプログラムなら余裕があるから今でも結構耐えると思うけどね
ASLRのせいとか?
ASLRのせいとか?
876デフォルトの名無しさん (ワンミングク MMa3-J2R6)
2019/08/07(水) 08:05:09.03ID:hSQIkEVZM 配列のメモリ配置をページ境界ぎりぎりに配置するようになってるリンカを使ってるとか。
環境わからんからなんとも言えんが、ちょっとはみ出した程度で障害を検知するようなメモリ配置するリンカは使ったこと無いので、もしあるなら環境知りたいわ。
環境わからんからなんとも言えんが、ちょっとはみ出した程度で障害を検知するようなメモリ配置するリンカは使ったこと無いので、もしあるなら環境知りたいわ。
877デフォルトの名無しさん (ブーイモ MMc9-YLZR)
2019/08/07(水) 19:29:43.79ID:kvH3ILvqM 「ちょっと」がどれくらいか知らないけど
プログラムの割当範囲超えて読み出せたらセキュリティ問題になりそうだから
OS側でエラーにしてるんじゃね
20年くらい前ってことはWin2000とか
NT系列が普及してきた頃か
プログラムの割当範囲超えて読み出せたらセキュリティ問題になりそうだから
OS側でエラーにしてるんじゃね
20年くらい前ってことはWin2000とか
NT系列が普及してきた頃か
879デフォルトの名無しさん (JP 0H51-JqUZ)
2019/08/07(水) 20:03:18.62ID:gw5PInHpH 1バイトでもずれたらエラーにするようなおせっかいな
Cコンパイラなんて実用的に使われるはずないし、
それを検出するようなOSも存在しないから心配するな。
「ほぼ」必ずがどんなもんか知らんが、
環境も書かないうろ覚え情報は価値なし。
Cコンパイラなんて実用的に使われるはずないし、
それを検出するようなOSも存在しないから心配するな。
「ほぼ」必ずがどんなもんか知らんが、
環境も書かないうろ覚え情報は価値なし。
880デフォルトの名無しさん (アウアウエー Sa13-x4/I)
2019/08/07(水) 20:21:39.49ID:klXV3cZTa segvってそもそも誰が出してんの?
CPU?
CPU?
881デフォルトの名無しさん (ワッチョイ ab7c-0ks1)
2019/08/07(水) 20:28:42.51ID:fbTDynTX0882デフォルトの名無しさん (ワッチョイ 0501-LGjB)
2019/08/07(水) 20:33:14.32ID:SR2YpJo70 工期ではCPUで良いけど正確にはMMUだな。
883デフォルトの名無しさん (ワッチョイ 0501-LGjB)
2019/08/07(水) 20:33:45.96ID:SR2YpJo70 ✕工期
○広義
○広義
884デフォルトの名無しさん (スフッ Sdfa-xky6)
2019/08/08(木) 21:20:13.27ID:gHNDo6wMd C言語のポインタで
構造体の中で char *a; でメンバを入れてその後 bc.a=なんちゃら〜 で中身を入れれる意味がわかりません(bcは適当)
この時のaはchar型のアドレスを入れる用の箱じゃないんですか?
構造体の中で char *a; でメンバを入れてその後 bc.a=なんちゃら〜 で中身を入れれる意味がわかりません(bcは適当)
この時のaはchar型のアドレスを入れる用の箱じゃないんですか?
885デフォルトの名無しさん (ワッチョイ 9501-xky6)
2019/08/08(木) 21:29:57.24ID:DLp++heI0 >>884
その中身はchar*なんでしょ
その中身はchar*なんでしょ
886デフォルトの名無しさん (JP 0Had-pswD)
2019/08/08(木) 21:36:44.22ID:6z4gxBSLH >>884
なんちゃら〜が不明。もっとちゃんと引用して。
なんちゃら〜が不明。もっとちゃんと引用して。
887デフォルトの名無しさん (ワッチョイ 7d61-VaZZ)
2019/08/08(木) 21:43:20.35ID:ggjVn3y20888デフォルトの名無しさん (アウアウウー Sa39-y1ph)
2019/08/08(木) 22:22:51.59ID:tebxUNsfa889デフォルトの名無しさん (ワッチョイ 7144-1zmT)
2019/08/08(木) 23:56:48.32ID:Z+gh8ecz0 コピペで事務仕事をある程度自動化できる程度やけとプログラマになってもええか?
組んだことあるのはJAVAとCとVBAや。ポインタはイマイチよく分かっとらん。
組んだことあるのはJAVAとCとVBAや。ポインタはイマイチよく分かっとらん。
890デフォルトの名無しさん (アウアウエー Sa02-O5Qm)
2019/08/09(金) 00:24:13.05ID:6e2j91pda 注力するならC#がええと思いますよ
891デフォルトの名無しさん (ワッチョイ da01-RqjC)
2019/08/09(金) 03:31:58.24ID:P0R/OZlj0 >>889
なってもいいけどそのレベルで食っていけるかどうか知らん
なってもいいけどそのレベルで食っていけるかどうか知らん
892デフォルトの名無しさん (ワッチョイ 7663-iNuD)
2019/08/09(金) 07:05:24.58ID:wDIMdjXm0 今食っていけてるんだから大丈夫だろ
893デフォルトの名無しさん (ワッチョイ 9501-xky6)
2019/08/09(金) 07:11:48.85ID:UutwPLbs0894デフォルトの名無しさん (ワッチョイ 7144-1zmT)
2019/08/09(金) 23:21:54.71ID:DquSwjO80 今は製造管理部や。いつかはシステム系の仕事がしたい
895デフォルトの名無しさん (ワッチョイ 9501-C+Ts)
2019/08/10(土) 22:18:15.47ID:J1bMQiAW0 Ansibleでもやってろ
896デフォルトの名無しさん (ワッチョイ fda0-+P8T)
2019/08/11(日) 19:14:52.47ID:NrvveISi0 コピペ事務員がC言語で何すんの?
システム系って具体的になにがやりてーの?
システム系って具体的になにがやりてーの?
897デフォルトの名無しさん (ワッチョイ 45f6-X5Lh)
2019/08/11(日) 19:58:13.13ID:XjjjEpxU0 ウサギとカメだなw
898デフォルトの名無しさん (アウアウウー Sa39-1zmT)
2019/08/11(日) 22:26:43.29ID:DBEcd/Mha >>896
くみこみ
くみこみ
899デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 14:25:50.36ID:awsnfbDbp C言語を趣味で勉強し始めて、苦C、プログラム言語Cを読んだだけでまだまともなプログラムを書いたことない者です。
実践を兼ねて職場で使えるプログラムを書いてみようと思っています。
職場環境がセキュリティの関係で新しいソフトなど入れられず、エクセルは元から入っている状況です。
やりたいことは日付と紐付いた情報群(8/1,a=12,c=20: 8/3, b=30, c=40)を複数個入れて、特定の日付に最も近い情報を任意の順番で並び替えながら取り出す(8/5: 8/1, a=12; 8/3, b=30; 8/3, c=30)ということです。
C言語の勉強にと思ったのですがこの状況だとVBAを勉強してエクセルでマクロを組む方がいいでしょうか…ご教授願います><
実践を兼ねて職場で使えるプログラムを書いてみようと思っています。
職場環境がセキュリティの関係で新しいソフトなど入れられず、エクセルは元から入っている状況です。
やりたいことは日付と紐付いた情報群(8/1,a=12,c=20: 8/3, b=30, c=40)を複数個入れて、特定の日付に最も近い情報を任意の順番で並び替えながら取り出す(8/5: 8/1, a=12; 8/3, b=30; 8/3, c=30)ということです。
C言語の勉強にと思ったのですがこの状況だとVBAを勉強してエクセルでマクロを組む方がいいでしょうか…ご教授願います><
900デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 14:34:08.87ID:awsnfbDbp ごめんなさい。↑c=40でした。
901デフォルトの名無しさん (ワッチョイ 9501-xky6)
2019/08/12(月) 14:43:41.28ID:TQ9KMPr70 CでもVBAでもなんでもできます
902デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 15:04:39.07ID:awsnfbDbp C言語で行う場合、どういう方法がいいでしょうか。
後出しで申し訳ないですが、コンパイラが無くpcで実行できるのがエクセルだけ、外部からテキストファイルすら入れられないpcです…
後出しで申し訳ないですが、コンパイラが無くpcで実行できるのがエクセルだけ、外部からテキストファイルすら入れられないpcです…
903デフォルトの名無しさん (ワッチョイ 9501-xky6)
2019/08/12(月) 15:22:31.72ID:TQ9KMPr70 開発環境が無いのにどうやって動かす?
904デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 15:30:27.34ID:awsnfbDbp エクセル上でソースコード書いて動かす手段あればというご質問でした…超初歩的な質問ですみません
素直にVBA使います><
素直にVBA使います><
905デフォルトの名無しさん (ワッチョイ 8963-cVv4)
2019/08/12(月) 15:31:34.50ID:HBFUwOZh0 コンパイラすら入れられないならVBAでやったほうが絶対良いと思う。
というかすでにexcel上にあるデータに基づいた操作ならVBAでいいじゃん。
初心者の時点でCからexcelのデータ取り出すとか考えないほうが良いと思うよ
というかすでにexcel上にあるデータに基づいた操作ならVBAでいいじゃん。
初心者の時点でCからexcelのデータ取り出すとか考えないほうが良いと思うよ
906デフォルトの名無しさん (ワッチョイ 9501-+P8T)
2019/08/12(月) 15:38:48.68ID:TQ9KMPr70 どうしてもCでやりたいならCloud9とかオンラインIDE使う方法もある
だけどセキュリティ厳しい職場はネット制限もあるだろうね
だけどセキュリティ厳しい職場はネット制限もあるだろうね
907デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 15:40:37.58ID:awsnfbDbp908デフォルトの名無しさん (ワッチョイ da01-RqjC)
2019/08/12(月) 15:48:53.16ID:Mc0sgLDk0 >>902
C#でCコンパイラとリンカを書けばいいだけ
C#でCコンパイラとリンカを書けばいいだけ
909デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 16:05:28.15ID:awsnfbDbp >>908
ありがとうございます!
方法はあって皆様だと簡単にできることなのですね
少し調べたのですが、windowsに元々C#のコンパイラは入ってるのでそれを呼び出すということでしょうか
まずVBAで完成させてから、こちらも勉強してチャレンジしてみます!
ありがとうございます!
方法はあって皆様だと簡単にできることなのですね
少し調べたのですが、windowsに元々C#のコンパイラは入ってるのでそれを呼び出すということでしょうか
まずVBAで完成させてから、こちらも勉強してチャレンジしてみます!
910デフォルトの名無しさん (ワッチョイ 45f6-X5Lh)
2019/08/12(月) 16:15:36.62ID:xbNsqjWU0 >>902
そのpcってのは会社のPCか?
コンパイラを入れられないなら、それを使うのは諦めろ
C使いになれと会社が命じるのではなく
C使いになりたいと自分が思うなら
必要なものは自分で揃えろ
今の会社を辞めても使えるスキルは個人資産だからだ
ケチ臭いことばかり言ってしょぼい結果で終わるのか
自分を信じて大成するに相応しい投資をするのかは
人それぞれおまえ自身の生き方の問題だ
そのpcってのは会社のPCか?
コンパイラを入れられないなら、それを使うのは諦めろ
C使いになれと会社が命じるのではなく
C使いになりたいと自分が思うなら
必要なものは自分で揃えろ
今の会社を辞めても使えるスキルは個人資産だからだ
ケチ臭いことばかり言ってしょぼい結果で終わるのか
自分を信じて大成するに相応しい投資をするのかは
人それぞれおまえ自身の生き方の問題だ
911デフォルトの名無しさん (ワッチョイ 9501-+P8T)
2019/08/12(月) 16:23:09.85ID:TQ9KMPr70 C#でCコンパイラ書くのか。。。いばらの道だなw
>>911
これって商機?商機ならやってみたくなりますね…
これって商機?商機ならやってみたくなりますね…
913デフォルトの名無しさん (ワッチョイ 5595-+P8T)
2019/08/12(月) 16:30:41.77ID:VzSWusfF0 s/商機/正気/g
914デフォルトの名無しさん (ワッチョイ 9501-+P8T)
2019/08/12(月) 16:32:16.27ID:TQ9KMPr70 どっちにしろおかしいw
915デフォルトの名無しさん (アウアウカー Sa4d-O5Qm)
2019/08/12(月) 16:53:30.96ID:YnHD16wNa powershellもなかなかいいぜ
916デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 17:01:42.01ID:awsnfbDbp917デフォルトの名無しさん (アウアウウー Sa39-H0Mu)
2019/08/12(月) 17:13:23.68ID:WrS1/BP6a 今このスレに書き込みしているのは自宅の自分のPCか?ならばそれ使って学習環境整えて学習すると良い。
PCなしでスマホしか持ってないみたいな場合はまずはPC買え。
学習だけならばスマホしか持ってなくてもできなくはないが今の時代はPCなしではまだかなりの困難を伴うと思って間違いなし。
PCなしでスマホしか持ってないみたいな場合はまずはPC買え。
学習だけならばスマホしか持ってなくてもできなくはないが今の時代はPCなしではまだかなりの困難を伴うと思って間違いなし。
918デフォルトの名無しさん (ササクッテロ Sp75-0ye8)
2019/08/12(月) 18:58:43.13ID:awsnfbDbp >>917
自宅での開発環境は構築できているので、学習進めて行きます!
自宅での開発環境は構築できているので、学習進めて行きます!
919デフォルトの名無しさん (ワッチョイ b161-JGwf)
2019/08/12(月) 23:48:36.60ID:n9pQsVg70 >>874
結論的には、ローカル変数はスタック上に確保され、スタックには関数の呼び出し
元へマシン語の ret 文で帰るための「戻りアドレス」や、以前のスタックフレームの
先頭アドレスを保存しておくために、push ebp とした際の関数の呼び出し元の
スタックフレームの ebp の値なども入ってる。
なので、ローカル変数として、TYPE a[10]; のような配列 a を確保して、
a[x] で x の範囲が 9 を超えた場合、その戻りアドレスが壊される確率がとても
高い。
1. 戻りアドレスがへんな値に書き換われば、関数から戻る際に変なアドレスに
戻ろうとする。するとコード領域以外のデータ領域に戻ろうとしたり、
ページングされて無い変なページに戻ろうとすることになり、保護例外
が発生する可能性が高い。またたまたま、そのアドレスに「戻った(実際には
戻ったわけではなく、変なアドレスに jmp しただけ)」際に、
新しいアドレスのマシン語が変な命令に解釈されて、高い確率で
何らかの保護冷害が発生する。
2. 関数の最後で pop ebp を実行してから、元の関数へ戻ると、
ローカル変数は、mov [ebp+ofs],eax のような形でアクセスされる。
だから、スタックが変に書き換わっていた場合、ebp が変なアドレスになり、
[ebp+ofs]のアクセスの部分で保護例外が起きる。
結論的には、ローカル変数はスタック上に確保され、スタックには関数の呼び出し
元へマシン語の ret 文で帰るための「戻りアドレス」や、以前のスタックフレームの
先頭アドレスを保存しておくために、push ebp とした際の関数の呼び出し元の
スタックフレームの ebp の値なども入ってる。
なので、ローカル変数として、TYPE a[10]; のような配列 a を確保して、
a[x] で x の範囲が 9 を超えた場合、その戻りアドレスが壊される確率がとても
高い。
1. 戻りアドレスがへんな値に書き換われば、関数から戻る際に変なアドレスに
戻ろうとする。するとコード領域以外のデータ領域に戻ろうとしたり、
ページングされて無い変なページに戻ろうとすることになり、保護例外
が発生する可能性が高い。またたまたま、そのアドレスに「戻った(実際には
戻ったわけではなく、変なアドレスに jmp しただけ)」際に、
新しいアドレスのマシン語が変な命令に解釈されて、高い確率で
何らかの保護冷害が発生する。
2. 関数の最後で pop ebp を実行してから、元の関数へ戻ると、
ローカル変数は、mov [ebp+ofs],eax のような形でアクセスされる。
だから、スタックが変に書き換わっていた場合、ebp が変なアドレスになり、
[ebp+ofs]のアクセスの部分で保護例外が起きる。
920デフォルトの名無しさん (アウアウエー Sa02-O5Qm)
2019/08/13(火) 00:08:44.00ID:bI98bSLia よくわからんが、retして顕在化する問題の発生が増えたってこと?
921デフォルトの名無しさん (ラクペッ MMdd-u6+H)
2019/08/13(火) 01:31:47.80ID:l5EJHg1rM 20年ぐらい前からという条件なら特に変わりは無いだろう
922デフォルトの名無しさん (ワッチョイ 5563-iNuD)
2019/08/13(火) 06:54:43.14ID:tpzkwMyE0 それ以上前はCPUが8086だった…
923デフォルトの名無しさん (ワッチョイ 45ab-dKkF)
2019/08/13(火) 07:02:22.00ID:0//4zuKx0 寒いな
924デフォルトの名無しさん (アウアウウー Sa39-H0Mu)
2019/08/13(火) 09:45:48.76ID:2qtnUYLta いわゆる普通の Windows PC だとそんな感じかな?中身が Windows NT のやつになってよりまともな感じのOSになったと。
しかし他のOSやCPUでは約20年前からとか、そういうのはない。あったとしても時期が違う。
しかし他のOSやCPUでは約20年前からとか、そういうのはない。あったとしても時期が違う。
925デフォルトの名無しさん (ワッチョイ 7663-+P8T)
2019/08/13(火) 09:56:43.52ID:AAd69x7F0 NTになってからも、この現象は起きます
926デフォルトの名無しさん (ワッチョイ b17c-JGwf)
2019/08/13(火) 10:26:31.42ID:rjuNmU8i0 >>920
OSがプロテクトモード(保護モード)で動作して、アプリが保護違反をしてないかCPUが常に監視
しながら動くようになってからはその辺の事情は特に変わってない。なお、
スタックフレームは、
関数名 proc
push ebp
mov ebp,esp
sub esp,定数値
・・・
mov esp,ebp
pop ebp
ret
関数名 endp
のような形式になっていて、もしローカル変数として配列を確保して、それが
バッファオーバーランした書き込みを行った場合、上記の pop ebp で変なアドレス
がebpに入り、retで変なアドレスへ飛ぼうとする。変なアドレスに飛ぼうとしたら
そこで保護例外が起きる確率が高くなる。また、上記の関数の構造は、関数を
呼び出した親の関数でも同じなので、そこでも、祖父の関数へ戻る際、
最後の方で mov esp,ebpという命令が実行される。しかし、今言ったように
ebpに狂ったアドレスが入ってしまっていれば、この命令で esp = ebp
とされようとしたときにセグメンテーション・フォールトが起きる可能性が
高くなる。espへの代入は、保護に関して他のレジスタへの代入とは違う
特別な処理がされており、ss というスタックセグメントの範囲から逸脱していないか、
また、espが4で割り切れる値になっているかどうかのチェックが入る。
それは普通のページング・フォールトのチェックだけよりも調査項目が増えるので
より厳しくなる。
OSがプロテクトモード(保護モード)で動作して、アプリが保護違反をしてないかCPUが常に監視
しながら動くようになってからはその辺の事情は特に変わってない。なお、
スタックフレームは、
関数名 proc
push ebp
mov ebp,esp
sub esp,定数値
・・・
mov esp,ebp
pop ebp
ret
関数名 endp
のような形式になっていて、もしローカル変数として配列を確保して、それが
バッファオーバーランした書き込みを行った場合、上記の pop ebp で変なアドレス
がebpに入り、retで変なアドレスへ飛ぼうとする。変なアドレスに飛ぼうとしたら
そこで保護例外が起きる確率が高くなる。また、上記の関数の構造は、関数を
呼び出した親の関数でも同じなので、そこでも、祖父の関数へ戻る際、
最後の方で mov esp,ebpという命令が実行される。しかし、今言ったように
ebpに狂ったアドレスが入ってしまっていれば、この命令で esp = ebp
とされようとしたときにセグメンテーション・フォールトが起きる可能性が
高くなる。espへの代入は、保護に関して他のレジスタへの代入とは違う
特別な処理がされており、ss というスタックセグメントの範囲から逸脱していないか、
また、espが4で割り切れる値になっているかどうかのチェックが入る。
それは普通のページング・フォールトのチェックだけよりも調査項目が増えるので
より厳しくなる。
927デフォルトの名無しさん (アウアウエー Sa02-O5Qm)
2019/08/13(火) 10:32:41.54ID:bI98bSLia だから、何が変わったのか言えよ
928デフォルトの名無しさん (ワッチョイ b161-JGwf)
2019/08/13(火) 10:40:59.48ID:+uxvNwqI0 >>926
・ret文で変なアドレスに飛ぼうとした場合、そのページが実行属性が付いていない
場合や、そもそもページングされて無いアドレスであればページ例外が起きる。
さらに、たまたまそのチェックがすり抜けても飛んだ先の命令列のうちのどこかが、
存在しない命令パターンだったり、アプリでは使ってはいけない命令に
なってしまっている確率も結構、高頻度で有ってその場合「不法命令外」
というものが生じる・
・esp=ebpにされる際、espが4で割り切れるかどうかのチェック入る。だから、
スタックが破壊された場合、3/4(4分の3)、即ち75%の確率でここで
スタック保護例外が生じる。また、スタック・セグメントの範囲チェックで、
大体、50%〜90%くらいの確率で異常が発見される。そして、これら二つの
チェックで異常が発見される確率は、1-(1-0.75)*(1-0.5〜0.9)程度の確率となる。
となり、僅かでもスタックのebpの保存場所にバッファオーバーランが派生した場合、
結構な高確率で異常が発見される。大体、これだけでも、9割以上。
・上記は、偶然に異常が発見される確率。全ての確立を総合すると、
1-(1-p_1)(1-p_2)・・・(1-p_n) のような形で偶然にして異常が発見されるが、
チェック項目の個数 n が十分大きいと、割と即座に近い時期に異常がたまたま発見される
確率は、99%位になっても不思議は無い。これは数学の話。
・ret文で変なアドレスに飛ぼうとした場合、そのページが実行属性が付いていない
場合や、そもそもページングされて無いアドレスであればページ例外が起きる。
さらに、たまたまそのチェックがすり抜けても飛んだ先の命令列のうちのどこかが、
存在しない命令パターンだったり、アプリでは使ってはいけない命令に
なってしまっている確率も結構、高頻度で有ってその場合「不法命令外」
というものが生じる・
・esp=ebpにされる際、espが4で割り切れるかどうかのチェック入る。だから、
スタックが破壊された場合、3/4(4分の3)、即ち75%の確率でここで
スタック保護例外が生じる。また、スタック・セグメントの範囲チェックで、
大体、50%〜90%くらいの確率で異常が発見される。そして、これら二つの
チェックで異常が発見される確率は、1-(1-0.75)*(1-0.5〜0.9)程度の確率となる。
となり、僅かでもスタックのebpの保存場所にバッファオーバーランが派生した場合、
結構な高確率で異常が発見される。大体、これだけでも、9割以上。
・上記は、偶然に異常が発見される確率。全ての確立を総合すると、
1-(1-p_1)(1-p_2)・・・(1-p_n) のような形で偶然にして異常が発見されるが、
チェック項目の個数 n が十分大きいと、割と即座に近い時期に異常がたまたま発見される
確率は、99%位になっても不思議は無い。これは数学の話。
929デフォルトの名無しさん (ワッチョイ b161-JGwf)
2019/08/13(火) 10:42:39.25ID:+uxvNwqI0930デフォルトの名無しさん (アウアウエー Sa02-O5Qm)
2019/08/13(火) 10:48:21.44ID:bI98bSLia 確立って書くのは例外なくアホ
931デフォルトの名無しさん (ワッチョイ b17c-JGwf)
2019/08/13(火) 10:50:03.67ID:rjuNmU8i0 変換ミスだよ。
932デフォルトの名無しさん (スッップ Sdfa-MjoS)
2019/08/13(火) 11:41:48.81ID:/0JIigTLd フン、難しすぎてチンプンカンプンだぜ
933デフォルトの名無しさん (ワッチョイ b17c-JGwf)
2019/08/13(火) 12:09:25.81ID:rjuNmU8i0934デフォルトの名無しさん (ワッチョイ 7663-+P8T)
2019/08/13(火) 12:15:52.88ID:AAd69x7F0 まだちゃんと動作していないよ
CPUがなんちゃってプロテクトモードだから
CPUがなんちゃってプロテクトモードだから
>>933
ユーザーアドレス空間をいちいちチェックしているとは思えませんが…
ユーザーアドレス空間をいちいちチェックしているとは思えませんが…
936デフォルトの名無しさん (アウアウウー Sa39-H0Mu)
2019/08/13(火) 12:41:24.24ID:2qtnUYLta 95や98とXPは違う、っていうなら単純にOSの違いが影響していると思われ
937デフォルトの名無しさん (ワッチョイ b17c-JGwf)
2019/08/13(火) 14:07:38.62ID:rjuNmU8i0 >>935
プロテクトモードだとCPUが常にチェックし続けてますよ。
3.5GHzとかで、1命令実行するたびにチェックしながら動いています。
ハードウェアレベルでそういうチェック機構がCPUの内部に入っているので。
プロテクトモードだとCPUが常にチェックし続けてますよ。
3.5GHzとかで、1命令実行するたびにチェックしながら動いています。
ハードウェアレベルでそういうチェック機構がCPUの内部に入っているので。
938デフォルトの名無しさん (ワッチョイ 45f6-X5Lh)
2019/08/13(火) 16:10:25.29ID:74dfGXTi0 ソフトと違い、ハードでのチェックは処理時間を遅延させないからな
939デフォルトの名無しさん (ワッチョイ 9501-InMM)
2019/08/13(火) 17:04:27.47ID:5q1NdOKU0 >>938
厳密にはそれは言い過ぎ。
厳密にはそれは言い過ぎ。
940デフォルトの名無しさん (ワッチョイ 45f6-X5Lh)
2019/08/13(火) 17:08:00.20ID:74dfGXTi0 V=Rは速いとか言いたいのか?
941デフォルトの名無しさん (ワッチョイ da01-RqjC)
2019/08/13(火) 17:48:57.55ID:b87Bd4Qh0 最近はあまりないけどMMUの処理で1サイクル遅延するハードとかもあったよ
要するに「常に」処理時間を遅延させないってわけじゃないってことな
要するに「常に」処理時間を遅延させないってわけじゃないってことな
942デフォルトの名無しさん (ワッチョイ b17c-JGwf)
2019/08/13(火) 19:33:45.29ID:rjuNmU8i0 >>941
現代のCPUでは、パイプラインを使っているのである程度重い処理であっても、
速度低下には繋がらないような仕組みがあります。
結構複雑なMMUの処理が入っても1命令の実行速度の低下は全く無いことが
多いです。
現代のCPUでは、パイプラインを使っているのである程度重い処理であっても、
速度低下には繋がらないような仕組みがあります。
結構複雑なMMUの処理が入っても1命令の実行速度の低下は全く無いことが
多いです。
943デフォルトの名無しさん (ワッチョイ 5563-iNuD)
2019/08/13(火) 19:56:23.66ID:tpzkwMyE0 そこまでやってくれるのにバッファオーバーラン自体はチェックしてくれんのですか
944デフォルトの名無しさん (ワッチョイ 7663-+P8T)
2019/08/13(火) 20:04:59.83ID:AAd69x7F0 最近のCPUでの脆弱性がどうして起きているか,誰か解説して
945デフォルトの名無しさん (アウアウエー Sa02-O5Qm)
2019/08/13(火) 20:05:05.08ID:UammDDeWa まあそっちはばるぐりどんの仕事だよね。
最近は全然関係ないところでバスエラーが発生する様なプログラムはあんまり見なくなったわ。新規に作り込むことはないだろうし、古いコードもあらかた直したし。
最近は全然関係ないところでバスエラーが発生する様なプログラムはあんまり見なくなったわ。新規に作り込むことはないだろうし、古いコードもあらかた直したし。
946デフォルトの名無しさん (ワッチョイ da01-RqjC)
2019/08/13(火) 20:23:31.85ID:b87Bd4Qh0947デフォルトの名無しさん (ワッチョイ 7d9f-PMB1)
2019/08/13(火) 22:27:20.37ID:mICjniMU0 >>943
バッファオーバーランはプログラム上の論理的な境界の問題だから、ハードウェア的に一律に処理することはできないよ
バッファオーバーランはプログラム上の論理的な境界の問題だから、ハードウェア的に一律に処理することはできないよ
948デフォルトの名無しさん (ワッチョイ daad-LRiH)
2019/08/13(火) 22:48:57.58ID:1mKsD1EO0 バイト単位でマスク掛けてそこからはみ出すアクセスで割り込みできればなんとかなりそう。
949デフォルトの名無しさん (ワッチョイ 7a40-X5Lh)
2019/08/14(水) 13:20:34.48ID:FpyX88UP0 仮想アドレスってどう実装されてるの?
86系はセグメントで先頭アドレス決めてるだけだろうけど。
86系はセグメントで先頭アドレス決めてるだけだろうけど。
950デフォルトの名無しさん (ワッチョイ 7663-+P8T)
2019/08/14(水) 13:30:00.49ID:29pnbISy0 >>949
仮想86モードのこと?
仮想86モードのこと?
951デフォルトの名無しさん (ワッチョイ da01-RqjC)
2019/08/14(水) 13:51:20.29ID:xanGzDta0 >>949
ページングの話なのかセグメントの話なのか
ページングの話なのかセグメントの話なのか
952デフォルトの名無しさん (ワッチョイ 5a61-JGwf)
2019/08/14(水) 14:20:06.89ID:meO8Vw3B0953デフォルトの名無しさん (ワッチョイ da01-RqjC)
2019/08/14(水) 14:29:06.01ID:xanGzDta0954デフォルトの名無しさん (ワッチョイ 5a61-JGwf)
2019/08/14(水) 15:01:22.77ID:meO8Vw3B0 >>949
記憶に頼って書くので、少し間違いがあるかもしれないが、IA32では、
・仮想アドレスの4KBの領域が1ページと呼ばれる。
・それぞれのページの先頭アドレスには好きな物理アドレスを割り付けることが
出来る。また、ページごとに、R,W,E 属性などを ON/OFF できる。
Read/Write/Execute ができるかどうかを指定できるということ。
・1024個のページのをまとめてテーブルにして、そこにそれぞれのページの
上記情報をまとめて書く。このテーブルは連続した4MBの仮想アドレス領域
に対応している。このテーブルは、1ページあたりが4バイトになっていて、
「エントリ」と呼ばれる。4バイトのエントリが1024個集まって1つの
テーブルを形作り、「ページテーブル」という。ページテーブル自体も
また4KBになっていて、ページのサイズと同じになっている。
・さらに、このページテーブルの先頭アドレスを1024個分まとめて書いた配列があり、
ページディレクトリと呼ばれる。既に述べたようにページテーブルが仮想アドレス
4MB分を管理するので、1024個分まとまると 4MB * 1024 = 4GB 分を管理
することができるようになる。これで2^32=4GBに相当するので32BITのアドレス
空間全てを管理できるようになる。
・ページテーブルの中には、物理アドレスを割り付けないページを作ることも出来る。
・ページディレクトリも、ページテーブルを割り付けないエントリが有っても良い。
・ページディレクトリが置かれた物理アドレスは、CPUの特殊な専用レジスタの中に
入れられる。
・ぺージディレクトリ、ページテーブルの情報は、メモリアクセスを伴うマシンご命令を
実行する際に必ず必要になるので、高速化するため、TLB(Translation Lookaside Buffer
、アドレス変換バッファ)という専用のキャッシュ領域に格納されて、とても高速に
処理できるようになっている。TLBのキャッシュをクリアして再度構築する(読み込む)
には、結構時間がかかるといわれており、これがOSのプロセス(タスク)切り替えの
大きなオーバーヘッドを生むといわれている。
記憶に頼って書くので、少し間違いがあるかもしれないが、IA32では、
・仮想アドレスの4KBの領域が1ページと呼ばれる。
・それぞれのページの先頭アドレスには好きな物理アドレスを割り付けることが
出来る。また、ページごとに、R,W,E 属性などを ON/OFF できる。
Read/Write/Execute ができるかどうかを指定できるということ。
・1024個のページのをまとめてテーブルにして、そこにそれぞれのページの
上記情報をまとめて書く。このテーブルは連続した4MBの仮想アドレス領域
に対応している。このテーブルは、1ページあたりが4バイトになっていて、
「エントリ」と呼ばれる。4バイトのエントリが1024個集まって1つの
テーブルを形作り、「ページテーブル」という。ページテーブル自体も
また4KBになっていて、ページのサイズと同じになっている。
・さらに、このページテーブルの先頭アドレスを1024個分まとめて書いた配列があり、
ページディレクトリと呼ばれる。既に述べたようにページテーブルが仮想アドレス
4MB分を管理するので、1024個分まとまると 4MB * 1024 = 4GB 分を管理
することができるようになる。これで2^32=4GBに相当するので32BITのアドレス
空間全てを管理できるようになる。
・ページテーブルの中には、物理アドレスを割り付けないページを作ることも出来る。
・ページディレクトリも、ページテーブルを割り付けないエントリが有っても良い。
・ページディレクトリが置かれた物理アドレスは、CPUの特殊な専用レジスタの中に
入れられる。
・ぺージディレクトリ、ページテーブルの情報は、メモリアクセスを伴うマシンご命令を
実行する際に必ず必要になるので、高速化するため、TLB(Translation Lookaside Buffer
、アドレス変換バッファ)という専用のキャッシュ領域に格納されて、とても高速に
処理できるようになっている。TLBのキャッシュをクリアして再度構築する(読み込む)
には、結構時間がかかるといわれており、これがOSのプロセス(タスク)切り替えの
大きなオーバーヘッドを生むといわれている。
955デフォルトの名無しさん (ワッチョイ 5a61-JGwf)
2019/08/14(水) 15:11:00.14ID:meO8Vw3B0 >>949
なお、WindowsやLinuxでは、セグメンテーションの方は積極的には
ほとんど使っておらず、意味がある使い方をしているのはページングの方だけ。
だから、デファクトスタンダードのOSは、ほぼ全てページングだけを使っている
と言っても過言では無い。セグメンテーションは、スタック領域(esp,ebp)の
ためだけにはやや意味のある使い方がなされる場合があるかも知れない。
というのはスタック領域については、CPUの保護がちょっとだけ強く保護できる
仕組みを持っているが、それがセグメンテーションの仕組みを使っているから。
例えば、仮想アドレス領域の一部だけをスタック領域にして、そこからはみ出た
場合には保護例外を発生させたいような場合には、セグメンテーションが利用できる。
上手く使えば、スタックの自動伸張にも使えないことも無い。ただし、
自動伸張にか関してはそんなに上手く使いこなせる仕組みでも、そんなに
効率が上げられる訳でもない。再帰関数の何度も呼びすぎてスタック
を使いすぎた場合にプログラマにエラーを表示するような目的には
使おうと思えば使える。
なお、WindowsやLinuxでは、セグメンテーションの方は積極的には
ほとんど使っておらず、意味がある使い方をしているのはページングの方だけ。
だから、デファクトスタンダードのOSは、ほぼ全てページングだけを使っている
と言っても過言では無い。セグメンテーションは、スタック領域(esp,ebp)の
ためだけにはやや意味のある使い方がなされる場合があるかも知れない。
というのはスタック領域については、CPUの保護がちょっとだけ強く保護できる
仕組みを持っているが、それがセグメンテーションの仕組みを使っているから。
例えば、仮想アドレス領域の一部だけをスタック領域にして、そこからはみ出た
場合には保護例外を発生させたいような場合には、セグメンテーションが利用できる。
上手く使えば、スタックの自動伸張にも使えないことも無い。ただし、
自動伸張にか関してはそんなに上手く使いこなせる仕組みでも、そんなに
効率が上げられる訳でもない。再帰関数の何度も呼びすぎてスタック
を使いすぎた場合にプログラマにエラーを表示するような目的には
使おうと思えば使える。
956デフォルトの名無しさん (バッミングク MM49-lbBw)
2019/08/14(水) 17:57:06.94ID:vUE0DVkpM いくつか補足
>>・仮想アドレスの4KBの領域が1ページと呼ばれる。
今のx86では4MB、x64では2MBのページや1GBのページも使え、メモリ使用効率を犠牲にして大量のメモリを使うプログラムのパフォーマンスを上げられるようになっている。
>>・それぞれのページの先頭アドレスには好きな物理アドレスを割り付けることが出来る。また、ページごとに、R,W,E 属性などを ON/OFF できる。
先頭アドレスが設定できるアドレスは4kB毎。x86でのExecute指定はPAEが有効な時のみ
>>・1024個のページのをまとめてテーブルにして、
x64とPAE有効なx86では8バイト512エントリ
>>・さらに、このページテーブルの先頭アドレスを1024個分まとめて書いた配列があり、ページディレクトリと呼ばれる。
x64では512エントリのテーブルが4段で1ページ4kBだから、4*9+12=48ビットの物理メモリまで指定できる
>>例えば、仮想アドレス領域の一部だけをスタック領域にして、そこからはみ出た場合には保護例外を発生させたいような場合には、セグメンテーションが利用できる。
x86では出来るが、ページングで自動伸長やスタックオーバーフロー検出を特に問題なくできるからわざわざ使わないし、x64ではベースとリミットが廃止されたから不可能
あと、x64で互換モード(32bit)とlongモード(64bit)の切り換えはコードセグメントの設定で自動的に行われるから、そのためには最低2つのコードセグメントが必要
>>・仮想アドレスの4KBの領域が1ページと呼ばれる。
今のx86では4MB、x64では2MBのページや1GBのページも使え、メモリ使用効率を犠牲にして大量のメモリを使うプログラムのパフォーマンスを上げられるようになっている。
>>・それぞれのページの先頭アドレスには好きな物理アドレスを割り付けることが出来る。また、ページごとに、R,W,E 属性などを ON/OFF できる。
先頭アドレスが設定できるアドレスは4kB毎。x86でのExecute指定はPAEが有効な時のみ
>>・1024個のページのをまとめてテーブルにして、
x64とPAE有効なx86では8バイト512エントリ
>>・さらに、このページテーブルの先頭アドレスを1024個分まとめて書いた配列があり、ページディレクトリと呼ばれる。
x64では512エントリのテーブルが4段で1ページ4kBだから、4*9+12=48ビットの物理メモリまで指定できる
>>例えば、仮想アドレス領域の一部だけをスタック領域にして、そこからはみ出た場合には保護例外を発生させたいような場合には、セグメンテーションが利用できる。
x86では出来るが、ページングで自動伸長やスタックオーバーフロー検出を特に問題なくできるからわざわざ使わないし、x64ではベースとリミットが廃止されたから不可能
あと、x64で互換モード(32bit)とlongモード(64bit)の切り換えはコードセグメントの設定で自動的に行われるから、そのためには最低2つのコードセグメントが必要
957デフォルトの名無しさん (アウアウウー Sa39-InMM)
2019/08/14(水) 17:58:59.46ID:8Ip/utt6a958デフォルトの名無しさん (ワッチョイ 9501-xky6)
2019/08/14(水) 18:05:09.36ID:WgtMp1yE0 おまいら詳しいな
いつも煽るだけのジジイとは大違いだ
いつも煽るだけのジジイとは大違いだ
959デフォルトの名無しさん (ワッチョイ 45ab-dKkF)
2019/08/14(水) 18:23:42.77ID:5CXVdP5r0 仮装はドレスって何よって空目した
960デフォルトの名無しさん (ワッチョイ a9ad-bVxB)
2019/08/17(土) 06:23:28.66ID:Zf+OyZFy0 CPUの振る舞いは、MS-DOS時代から触っていたら、OSを直接触る仕事して無くともそれなりに身に付く知識。
90年代の雑誌の記事とか、今見返すと結構適当な言い回しがおおいかなー。
90年代の雑誌の記事とか、今見返すと結構適当な言い回しがおおいかなー。
961デフォルトの名無しさん (ワッチョイ 2b82-9R4q)
2019/08/17(土) 14:33:53.72ID:1OZ5Sjcw0 設計から組み込みの部門に転籍したいんやけど応用情報取ればアピールになる?
962デフォルトの名無しさん (ワッチョイ d901-KVZO)
2019/08/17(土) 14:38:02.51ID:5o1qwOfF0964デフォルトの名無しさん (ワッチョイ 2b82-9R4q)
2019/08/17(土) 15:13:05.00ID:1OZ5Sjcw0 >>962
うるせーハゲ質問に答えろハゲ
うるせーハゲ質問に答えろハゲ
965デフォルトの名無しさん (ワッチョイ 2b82-9R4q)
2019/08/17(土) 15:13:17.45ID:1OZ5Sjcw0 >>963
サンキュー行ってくるわ
サンキュー行ってくるわ
966デフォルトの名無しさん (ワッチョイ d901-KVZO)
2019/08/17(土) 15:20:15.01ID:5o1qwOfF0967デフォルトの名無しさん (ワッチョイ 1301-wrC8)
2019/08/17(土) 16:42:17.15ID:kME64/ZP0 >>961
アマチュアなので業界のことはよくわかりませんが、私の経験では応用情報なんて準備なしでもサクサク合格できる非常に簡単な試験だったので
そんな馬鹿でも取れる試験を通ったところで、他人様にアピールできる要素なんて皆無だと思います
まあ取らないよりはましかもしれませんが、とったところで、どうということもないかと
アマチュアなので業界のことはよくわかりませんが、私の経験では応用情報なんて準備なしでもサクサク合格できる非常に簡単な試験だったので
そんな馬鹿でも取れる試験を通ったところで、他人様にアピールできる要素なんて皆無だと思います
まあ取らないよりはましかもしれませんが、とったところで、どうということもないかと
969デフォルトの名無しさん (ワッチョイ 39f6-g2bq)
2019/08/17(土) 16:59:25.44ID:m0TaYC720 資格を取るより、何か作ったほうがいい
それは何かを他人に説明できるものをな
最後までやり遂げるやつってアピールになる
それは何かを他人に説明できるものをな
最後までやり遂げるやつってアピールになる
970デフォルトの名無しさん (ワッチョイ 2b82-9R4q)
2019/08/17(土) 18:18:25.12ID:1OZ5Sjcw0 >>966
うるせーハゲ
うるせーハゲ
971デフォルトの名無しさん (アウアウウー Sa5d-9R4q)
2019/08/17(土) 18:26:43.42ID:iM/i00oRa >>968
馬鹿でも取れる資格で合格率2割か…世の中は馬鹿ばっかりと思ってる仕事できない人ですか?
馬鹿でも取れる資格で合格率2割か…世の中は馬鹿ばっかりと思ってる仕事できない人ですか?
972デフォルトの名無しさん (ワッチョイ 29a0-dCD9)
2019/08/17(土) 18:44:53.30ID:z2aQSF8W0 隙あらば自分語り
しかも応用情報所持者は馬鹿ときたもんだ
5chでコテハン付けてる人間にはろくなのが居ないのが良く分かるわ
しかも応用情報所持者は馬鹿ときたもんだ
5chでコテハン付けてる人間にはろくなのが居ないのが良く分かるわ
973デフォルトの名無しさん (ワッチョイ d352-+XXD)
2019/08/17(土) 18:58:47.65ID:WCU4L4CL0 >>972
コテハンじゃありません、トリップです(霧)
コテハンじゃありません、トリップです(霧)
976デフォルトの名無しさん (ワッチョイ d901-KVZO)
2019/08/17(土) 19:16:49.07ID:5o1qwOfF0977デフォルトの名無しさん (アウアウカー Sa15-5Ve3)
2019/08/17(土) 19:48:38.79ID:W0yISC1Ja 普段、eclipseでコード書いてるんだが実行環境を使わずにプログラムを動かしたいんだいんだ。
どうすれば良い?
どうすれば良い?
978デフォルトの名無しさん (ラクッペ MMa5-wDyD)
2019/08/17(土) 19:54:59.62ID:G9Jg/NxrM 実行環境が曖昧過ぎ
979デフォルトの名無しさん (ワッチョイ 5995-dCD9)
2019/08/17(土) 19:59:53.93ID:He41kTu90 https://paiza.io/ja
この類を使うとか?
この類を使うとか?
980さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/17(土) 20:07:35.05ID:hkO+8710d オンラインコンパイラーで検索。
981デフォルトの名無しさん (スップ Sd73-8mFv)
2019/08/17(土) 21:57:43.31ID:Gq1G0TGXd コンピューターサイエンスの勉強に最適な言語ってCですか?
雰囲気でPythonやらGoを実務で使ってるのでもっと核を学びたいのです
雰囲気でPythonやらGoを実務で使ってるのでもっと核を学びたいのです
982さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/17(土) 22:04:17.39ID:hkO+8710d >>981
アセンブリとCをやって、OS自作し、機械語を読めるくらいになったら間違いない。ただし、アセンブリやるならCPUの種類は選べ。マイナーなCPUを勉強しても役に立たない。
アセンブリとCをやって、OS自作し、機械語を読めるくらいになったら間違いない。ただし、アセンブリやるならCPUの種類は選べ。マイナーなCPUを勉強しても役に立たない。
983デフォルトの名無しさん (ワッチョイ 1379-dCD9)
2019/08/17(土) 22:05:10.03ID:RvVfsurb0 低レベルの勉強がしたいならアセンブラ
もっと低レベルなことがしたいならはんだごて買ってきて論理回路を勉強すべき
もっと低レベルなことがしたいならはんだごて買ってきて論理回路を勉強すべき
984デフォルトの名無しさん (スッップ Sd33-8mFv)
2019/08/17(土) 22:11:48.46ID:aitIb0FAd985デフォルトの名無しさん (ワッチョイ 1379-dCD9)
2019/08/17(土) 22:14:40.96ID:RvVfsurb0 業務で使ってるのが高級アセンブラじゃなくて
モダンな高級言語なら業務の役には立たないだろうな
デザインパターンやプログラム以外の知識を真面目に学んだ方が業務の役には立つぞ
モダンな高級言語なら業務の役には立たないだろうな
デザインパターンやプログラム以外の知識を真面目に学んだ方が業務の役には立つぞ
986さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/17(土) 22:17:08.29ID:hkO+8710d >>984
大規模開発やりたいか、小規模開発やりたいかによる。大規模開発ならオブジェクト指向とか上流のシステム設計とかの高レベルの視点が必要になる。
大規模開発やりたいか、小規模開発やりたいかによる。大規模開発ならオブジェクト指向とか上流のシステム設計とかの高レベルの視点が必要になる。
987デフォルトの名無しさん (ワッチョイ 1379-dCD9)
2019/08/17(土) 22:20:20.48ID:RvVfsurb0 小規模でも継続して開発するなら開発手法や設計の知識がないと全てがスパゲティになるぞ
988デフォルトの名無しさん (ワッチョイ 51b0-dCD9)
2019/08/17(土) 22:21:39.58ID:CuykVau60 コンピュータサイエンス学ぶのにアセンブラと言ったらまずはMMIXだろう。
989デフォルトの名無しさん (スッップ Sd33-8mFv)
2019/08/17(土) 22:22:45.34ID:iu5AFmQqd990デフォルトの名無しさん (ワッチョイ 1379-dCD9)
2019/08/17(土) 22:27:25.97ID:RvVfsurb0 パフォーマンスの良いコード書きたいなら
現実的には使ってる言語の仕様を深く理解する方が先
現実的には使ってる言語の仕様を深く理解する方が先
>>982
アセンブラをやれる手軽な環境ってありますかね…
gcc のインラインくらいしか思いつかない
そもそも、アセンブラ記述が効果的なアルゴリズムってありますかね…
キャリーフラグを触れるメリットが生かせるのは多桁長演算くらいしか思いつきません
アセンブラをやれる手軽な環境ってありますかね…
gcc のインラインくらいしか思いつかない
そもそも、アセンブラ記述が効果的なアルゴリズムってありますかね…
キャリーフラグを触れるメリットが生かせるのは多桁長演算くらいしか思いつきません
>>988
クヌース臭くてちょっち引きます…
クヌース臭くてちょっち引きます…
993さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/17(土) 22:36:17.56ID:hkO+8710d 今からアセンブラやるなら、gasかnasmが移植性が高く手頃だと思う。
OSのカーネルではCかアセンブラじゃないと信頼できない。割り込みはアセンブラじゃないと記述できないことがある。
OSのカーネルではCかアセンブラじゃないと信頼できない。割り込みはアセンブラじゃないと記述できないことがある。
994さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/17(土) 22:50:13.63ID:hkO+8710d Java仮想マシンのバイトコードも仮想アセンブラの一種と言えるのではないか。
最近ではLLVMというコンパイラ技術基盤があって、それを使えば仮想アセンブラというか中間言語でも高レベルの最適化ができる。
あくまで仮想だから本当のアセンブラとは言えない。
最近ではLLVMというコンパイラ技術基盤があって、それを使えば仮想アセンブラというか中間言語でも高レベルの最適化ができる。
あくまで仮想だから本当のアセンブラとは言えない。
995デフォルトの名無しさん (アウアウカー Sa15-tMJO)
2019/08/17(土) 22:56:25.40ID:mO2DYsgBa 低レイヤやってきたおっさんのスタンスは「動けばなんでもいい」が普通なので、なるべく同じ道は進んで欲しくない
996デフォルトの名無しさん (ワッチョイ 8b63-dCD9)
2019/08/17(土) 22:59:12.98ID:gRAatMdn0 仮想アセンブラなんて言葉は、初めて聞いた
違和感ありすぎる
違和感ありすぎる
998デフォルトの名無しさん (ワッチョイ 33ba-LL4R)
2019/08/17(土) 23:03:01.96ID:tN5mSQYg0 C言語なら俺に聞け 153
https://mevius.5ch.net/test/read.cgi/tech/1566050562/
https://mevius.5ch.net/test/read.cgi/tech/1566050562/
999デフォルトの名無しさん (ワッチョイ 29a0-R2Ej)
2019/08/18(日) 01:31:11.17ID:0XNdGcXI0 やっぱコテハンってゴミだな
1000さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/18(日) 01:43:12.61ID:f2ZPM7Xhd 五チャンネルの株式総会はこれで閉会と致します。お疲れ様でした。
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 61日 7時間 16分 2秒
新しいスレッドを立ててください。
life time: 61日 7時間 16分 2秒
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を超えています。これ以上書き込みはできません。
ニュース
- 「タトゥーで料理不潔」「海なし県なのに海鮮やるな」…25歳女将が語る誹謗中傷への本音「じゃあ日本でフランス料理食べられませんね」 [muffin★]
- 【音楽】チケットが「売れない」三浦大知、いきものがかりが異例の“懇願”「音楽にお金を払う文化」の衰退 [muffin★]
- 【池田信夫氏】「男系天皇」が古代からの伝統だという話は明治時代の創作 ★4 [樽悶★]
- 【小泉農相】コメ生産縮小の転換に意欲示す 「農政を抜本改革」 [蚤の市★]
- 【兵庫】「斎藤知事に愛想尽きた」兵庫県庁離れ加速 17年ぶり自主退職4割増、他自治体に転職も [煮卵★]
- トランプ、アップルに「iPhone」国内製造しない場合「少なくとも25%の関税課す」と表明…海外で製造するほかのスマホメーカーにも適用 [煮卵★]
- 【実況】博衣こよりのえちえち鬼武者2🧪
- 女、裸で踊ってしまうwwwwwwwwwwwwwwww [346571192]
- お🏡どこなの😭
- トランプおやびん、ソーラーパネルに関税3521% [838847604]
- 「豚丼と煽ってた本人が豚だった…」 という日本人の悲しいお話wwwwwwwwwwwwww [271912485]
- 【日本の真実】日本の国会議員、実は帰化した元外国人がめちゃ多かったことがXのポストで発覚。1.8万いいねを集める [268718286]