C言語なら俺に聞け 152

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウウー Sa4f-7DQ/)
垢版 |
2019/06/17(月) 18:27:10.41ID:3L1/L9kLa
!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
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でどうたらを早く説明しろ

 逃 げ ん な こ ら !
2019/06/17(月) 21:36:39.05ID:mDiaA7dQ0
>>2
ん?
今日はこちらに居ますよ、よろしかったら私の問題をぜひどうぞ
https://mevius.5ch.net/test/read.cgi/tech/1558168409/
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
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
2019/06/18(火) 07:43:45.32ID:EoNkeDzMa
>>4
違うよ、ゲッターズ飯田の話だよ。
7デフォルトの名無しさん (ワッチョイ 7602-byPh)
垢版 |
2019/06/18(火) 11:36:59.75ID:4drhwQwf0
ゲッター(英語表記)getter
翻訳|getter

ブリタニカ国際大百科事典 小項目事典の解説
ゲッター
getter
真空装置内の残留気体を吸着しうる材料のことで,高真空を達成する目的に使用されるもの。固体で吸着作用を行わせるものを接触ゲッター,気体中に分散させて吸着させるものを分散または拡散ゲッターと呼んでいる。
ほとんどの金属は両方のゲッター作用をもっているが,トリウム,バナジウム,チタンなどは接触ゲッターとして,またカルシウム,マグネシウム,バリウムなどは分散ゲッター作用がおもに利用され,蒸着またはスパッタして用いられる。
真空管などの封じた系の真空度維持や,イオンポンプなどに利用されている。
8デフォルトの名無しさん (ワッチョイ 97d2-bbnY)
垢版 |
2019/06/18(火) 15:20:40.49ID:oEueUArW0
gccのmallocはdlmallocを元に作られているから
mallocを何度も使って小さな領域を沢山確保する場合にもパフォーマンスは
下がりませんか?
2019/06/19(水) 02:34:24.10ID:ZgdO+9arM
>>8
推測するな計測せよ
10デフォルトの名無しさん (ワッチョイ 97d2-i1kE)
垢版 |
2019/06/19(水) 07:38:10.07ID:vrDHbYoN0
mallocを作るにはmmapつかえばいいの?
どうやるの?
2019/06/19(水) 09:36:35.28ID:nmMioiMa0
>>10
まずは蟹炒飯本のmallocを実装して勉強する
12デフォルトの名無しさん (ワッチョイ 1ab9-LWbF)
垢版 |
2019/06/19(水) 09:56:34.26ID:8qBvJS/J0
静的解析ツールはぬるぽとかメモリリークをどれくらい防げるものなの?
2019/06/19(水) 10:09:33.60ID:aZN2ypMKa
ポインタが多階層にまたがって参照されるクソコード書かなければ、ほぼ見つけてくれるよ。
勉強になるから積極的に使った方がいいよ。
14デフォルトの名無しさん (ワッチョイ 97d2-i1kE)
垢版 |
2019/06/19(水) 11:35:55.89ID:vrDHbYoN0
>>11
カニチャーハンの本とは表紙がカニチャーハンの本のことか?
mmapはつかうのか?つかわないのか?
何を使うのかだでけも教えてちょ
2019/06/19(水) 12:06:52.71ID:hHOnGKPJa
>>14
sbrk
2019/06/19(水) 19:23:38.95ID:sgbXbKqu0
>>13
静的解析ツールの定番はなんでしょうか?
2019/06/19(水) 21:39:24.52ID:2V8FHzvC0
>>16
https://ja.m.wikipedia.org/wiki/静的コード解析
使ったことあるのはPGReliefとCoverity
18デフォルトの名無しさん (ワッチョイ 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言語の歴史は長いのに、こういう初歩的なミスをどうして今の今まで気づかず、放置したんですか。
これを契機に俺は浮動小数点数は使わないことにした。
2019/06/23(日) 10:49:35.98ID:swNRnu090
>>19
ネタか?
IEEE754を読んでこい。
2019/06/23(日) 11:00:21.67ID:0CutuGif0
そのような現象が起こるのはC言語の浮動小数点数に限った話ではない

基本的に0か1かの世界であるコンピュータがどうやって浮動小数点数を扱っているのか
その辺のことを考えながらすこし色々調べ直したほうが良い

正確な精度が必要なら浮動小数点数じゃなくて任意精度計算のライブラリを使いましょう
2019/06/23(日) 12:07:37.92ID:LchWS7uN0
マジモンのネタか
ホームラン級のアホか
それとも嵐か
第四の選択肢をもった世界初の偉人か

どれだ
2019/06/23(日) 12:20:26.35ID:6tta8QXL0
四次元空間の歪みが原因
24デフォルトの名無しさん (オッペケ Sr8d-br4T)
垢版 |
2019/06/23(日) 12:35:51.53ID:NJ0BedP7r
>>21
答えを教えてください。最後の4の正体はなんですか?初心者なので。
2019/06/23(日) 12:55:52.97ID:0CutuGif0
>>24
あなたがちゃんと>>20を調べたとは思えないので私は答えません。
調べているならちゃんと計算方法も出てくるし、本当にそうなるのか実際に自分の手で試してみようという気も起きると思います。
初心者だからこそ自分で調べて自分で計算してみてください。
26デフォルトの名無しさん (オッペケ Sr8d-BCoK)
垢版 |
2019/06/23(日) 13:11:05.43ID:WmqFlq0Wr
>>25
スレタイにあるとおりC言語なら俺に聞けとあります。あなたは、その「俺」ではないのですか?なければやむを得ませんね。
2019/06/23(日) 13:19:19.31ID:0CutuGif0
ちなみにあなたの質問は「C言語」についての質問になっていません
「浮動小数点数を扱う規格」とそれを使った計算結果の質問です
なのでそもそもこのスレで答える筋合いがありません
2019/06/23(日) 13:38:06.54ID:6tta8QXL0
>>19
>8.21 * 5 = 41.050000000004←この4は何者でしょうか?

>8.21 * 5 = 41.050000000000004

コピペミスか?
29デフォルトの名無しさん (オッペケ Sr8d-BCoK)
垢版 |
2019/06/23(日) 14:23:31.49ID:WmqFlq0Wr
>>28
コピペではありません。手入力です。0は重要ではありません。最後の4が曲者です
2019/06/23(日) 14:28:01.64ID:q+spl44ja
誰かと思ったら引数voidじゃん。
2019/06/23(日) 14:38:43.89ID:6tta8QXL0
手入力だったのかw
じゃあ犯人は君の右手だ
32デフォルトの名無しさん (オッペケ Sr8d-BCoK)
垢版 |
2019/06/23(日) 14:55:34.65ID:WmqFlq0Wr
そもそもなぜ4でなく0で完結しないのか。0だと不都合があるのか、本質が議論されていないからいつまでたってても解決しませんよ。
2019/06/23(日) 15:22:02.08ID:swNRnu090
>>32
マジレスすると浮動小数点は内部で2^nの有限和でしか表現できないから(nはマイナスもあり)。
10進数に変換すると誤差が出る。
これで分からないなら諦めろ。
34デフォルトの名無しさん (オッペケ Sr8d-BCoK)
垢版 |
2019/06/23(日) 15:27:27.16ID:WmqFlq0Wr
>>33
んむ、、。。
2019/06/23(日) 15:31:00.34ID:6tta8QXL0
桁数には頓着せずに見かけの数値に拘るって
どこかが変
2019/06/23(日) 15:31:16.28ID:vVd52qKZ0
>>32
答えは>>20で出ており、議論すべきことはなにも残っていない。
残っているのはお前さんが提示された情報をちゃんと調べて自分の頭で考えることだ。
それをした上でまた疑問が出たならそれを質問すればいい。
37デフォルトの名無しさん (オッペケ Sr8d-BCoK)
垢版 |
2019/06/23(日) 15:36:12.25ID:WmqFlq0Wr
>>35
手入力で適当に0埋めたからヒューマンエラーがあってしかるべき。だからおかしくない。
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になるってことだよ
2019/06/23(日) 16:48:18.15ID:x5yyaGlX0
マジレスできるが、おまえの態度が気に入らない
2019/06/23(日) 17:35:42.12ID:2hTCNg/0M
このレベルの質問者に対して、ieee754読んでこいおしまいも、そうとうどうにかしてる
2019/06/23(日) 17:39:16.12ID:/bRV2XXvd
基本情報の範囲でしょ。勉強不足。
2019/06/23(日) 17:50:45.53ID:6tta8QXL0
質問自体がネタにしか思えないからなあ
44デフォルトの名無しさん (オッペケ Sr8d-BCoK)
垢版 |
2019/06/23(日) 18:04:53.73ID:RHMsicrzr
>>42
申し訳ありません。最初にコメントした通り初心者なもんでして。
1000人の初心者に対して同じ質問しても1000人とも答えられないでしょう。だから恥じらいとかないんです。
2019/06/23(日) 18:09:08.51ID:6tta8QXL0
>>44
回答してもらって納得するよりも、
自分でやる方が遙かに勉強になる
ヒントだけ書いておこう

数値の内部表現を調べて、演算仮定を追いかけ
計算結果の内部表現を見て、それを10進表示に戻す

以上を追いかけていけば自ずと回答がでる
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は誤差が出てもいいから素早く計算出来る状態になっていると考えて良い。
2019/06/24(月) 01:06:30.65ID:zV4JNsEga
cでデシマル型ってあんの?
2019/06/24(月) 03:15:28.63ID:eqHVB1zL0
ない。
5118 (ワッチョイ 93b9-br4T)
垢版 |
2019/06/24(月) 05:23:21.67ID:218UFAwP0
http://home.a00.itscom.net/hatada/c-tips/lint01.html
こういうものでチェックしたら完全にクロスプラットフォームになるの?
ifdefとかなしで?
2019/06/24(月) 07:23:45.27ID:zxVE+D4VM
>>48
> では最初から内部も全て10進数で全て計算すれば良いではないかと思うかも知れないが、それではコンピュータ内部での計算が遅くなる。
それ以前に1/3ってやられたら同じことになる
10進数だと内部形式と外部形式で変換誤差が出ないだけで計算にまで言及したら10進数も2進数も同じだよ
2019/06/24(月) 09:50:57.10ID:Ih+U6NjR0
要は有効桁数を意識してりゃいいんだよ
それ以上の制度が欲しいなら専用ライブラリ使えばいい
2019/06/24(月) 11:14:12.23ID:UiRTkeqO0
2進数で計算する方が悪い
ちゃんと10進数で計算するライブラリを使え
2019/06/24(月) 12:10:10.27ID:K2wdCfDba
>>54
53の言ってる意味わからんでしょ
2019/06/24(月) 12:34:02.56ID:yt8SVBnP0
>>49
http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1312.pdf
57デフォルトの名無しさん (アウアウウー Sac5-5X+l)
垢版 |
2019/06/24(月) 12:50:07.91ID:6xXOOyfaa
>>52
そうだね。

>>53
そういう事だな。
2019/06/24(月) 13:01:39.05ID:KbxaxfSBM
有理数で計算するライブラリを使えばいい。
パイ?何それおっぱいのこと?
2019/06/24(月) 13:12:08.72ID:BrGul7Md0
有理数計算は実装してみれば分かるが圧倒的に遅いからな

無理数はどうやって実装するのか知らん
60デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
垢版 |
2019/06/24(月) 15:14:23.48ID:KYWI3ygZ0
有理数で計算したあと最後に無理数に直すところで一番最後が4になったらどうするんだよ
2019/06/24(月) 15:23:01.79ID:HSUghupZx
>>60
4を引けばいいじゃない。
2019/06/24(月) 15:23:13.21ID:zV4JNsEga
無理数って円周率とかeだろ?
違ったっけ?
63デフォルトの名無しさん (ワッチョイ d9d2-NSwX)
垢版 |
2019/06/24(月) 15:30:42.35ID:KYWI3ygZ0
有理数じゃなければ無理数だろ
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はどうなんだろうか?
2019/06/24(月) 16:44:03.34ID:T0z2fm5aa
>>64
数値演算に拘ならければ数式処理でπはπ、√2は√2のままで計算できるだろ。
2019/06/24(月) 16:50:34.10ID:Ih+U6NjR0
>>66
だから「厳密に」って言ってるじゃん
πは14桁で事足りるし31兆行も必要ないからね
2019/06/24(月) 16:52:25.55ID:Ih+U6NjR0
>>67
31兆桁ね
2019/06/24(月) 16:58:47.67ID:Vk3kXnxv0
> πは14桁で事足りるし
ぐるぐる回転するとだんだんずれてくる
2019/06/24(月) 17:08:19.82ID:Ih+U6NjR0
>>69
なら必要な精度だせばいいじゃん
2019/06/24(月) 17:09:23.06ID:T0z2fm5aa
>>67
いや、そうではなくて数式処理ならメモリ有限でも厳密に表現できるんだけど。
なんか俺変なこと言ってる?もしかして議論噛み合ってない?
2019/06/24(月) 17:13:52.11ID:Ih+U6NjR0
>>71
πはπとして表現するってことね
そりゃそうだよね
73デフォルトの名無しさん (ワッチョイ 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になるんじゃないのか?
2019/06/24(月) 17:25:35.31ID:T0z2fm5aa
>>73
そりゃ紙に書いて数式演算って言い始めたら数値演算も紙の上でできるでしょ。
俺の言ってるのはMathmaticaのような数式処理。
2019/06/24(月) 17:32:02.39ID:3Q+jRQuy0
建築設計や土木設計の時の数量計算なら、数字を出さないといけませんよ
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
紙が足りなくなってきたら最初の方から消しゴムで消していけばいいだけだからいつかは書き終わるだろう
2019/06/24(月) 17:47:35.39ID:Ih+U6NjR0
半径5の円の面積求めなさいって言われて
78.5... と数値として答えるか 5^2*pi と数式で答えるか
俺は数値の精度の話をしてたんだよ
2019/06/24(月) 17:53:40.54ID:HRlrDhQRa
数値にしたら負けだよな
2019/06/24(月) 17:55:12.54ID:7zvW/rVQ0
BCDコードは流行りませんか?
2019/06/24(月) 18:08:31.47ID:BrGul7Md0
有理数を実装すればいかなる整数m, n に対しても m / n * n がきちんと m に戻る
(decimal型でも普通無理)
同じようなことを無理数でやる方法がわからんって話よ

無理数が厳密に数値化できないなんて誰でも知ってる話はせんわ
2019/06/24(月) 18:30:26.02ID:Ih+U6NjR0
>>83
現実問題としてそんな厳密解は必要がないってことだよ
だから数値の精度の話したんだけどな
NASAはπ15桁で軌道計算して誤差は約12cmだってよ
2019/06/24(月) 18:34:28.07ID:BrGul7Md0
>>84
「そんな厳密解は必要がない」ってのはお前の信条だろ
お前の信条を話に混ぜられても困る
2019/06/24(月) 18:37:48.29ID:Ih+U6NjR0
>>85
どこに俺の信条があるんだよw
じゃあ何が問題なのか具体的に言ってみろよ
2019/06/24(月) 18:39:33.96ID:BrGul7Md0
>>86
俺「どうすれば実現すればいいのかわからない」
お前「そんなものは必要ない」

話になってない
2019/06/24(月) 18:40:08.00ID:BrGul7Md0
「どう実現すればいいのかわからない」だった
2019/06/24(月) 18:40:45.27ID:Ih+U6NjR0
>>87
何を実現したいのよ
2019/06/24(月) 18:42:33.59ID:BrGul7Md0
>>89
計算の中で無理数を無理数として処理したい

最後に数値化したいならそのときの誤差だけは許容する
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況