C言語なら俺に聞け 160

■ このスレッドは過去ログ倉庫に格納されています
2022/12/28(水) 10:40:30.02ID:PyoNDBFu0
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 159
https://mevius.5ch.net/test/read.cgi/tech/1659623547/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/03/06(月) 02:52:25.09ID:Ludh8Y7rM
>>594
3Dだとベクトルのノーマライズをしょっちゅうするけど、これはベクトルの長さで割るけど、事前に長さのチェックが漏れてると、ゼロで割ることになる
そういう特殊な状況は確かに稀なんで、リリースに残ってしまうことがある
2023/03/06(月) 03:02:31.96ID:Ludh8Y7rM
>>594
良く考えたら、rsqrtがnanを返してる気がする…
2023/03/06(月) 03:14:56.83ID:VyhKtCOB0
>>596
俺環ではDBL_MIN/0.0でもちゃんとinf吐くから、ノーマライズされるべきベクトル(分母)が正確に0.0というのはdoubleでは考えにくいような…
3Dだとsingle以下のfloat16/8とか使うと聞くから、極端に精度が低過いと起きるのかしら?
2023/03/06(月) 07:22:56.30ID:VyhKtCOB0
分子、でした

>>597
かもね

あと0.0/0.0以外の四則でもnanが出るケースは他にも思い付く(今思い付いた)
inf/infとか

まあ実数関数求根/方程式を解く目的なら(精度上での)解に達した証がinfだから、発生した時点で必ずbreakするし、事実上到達し得ない計算だけど

定義域がパッチワークみたいな複素関数で一々入力のチェックなんてやってられないし、nanには静かに伝播してもらわないと困るけど
とにかく欠損値の無い有限の実数値だけが欲しいだけ(例えばグラフィック)なら、fenv.h/signal.hで例外をヲチしてSIGFPE投げるとか、あるならsnanモードにするとか
2023/03/06(月) 14:19:01.34ID:+b36jU+h0
この糖質3歩手前みたいな文章はいつもの彼かね
>>385とか>>523とかと雰囲気が同じだが
2023/03/06(月) 22:43:56.50ID:K6iDrUwm0
このような状態を「思考障害」と呼び、Cプログラマの2割ほどが患っていると言われています
2023/03/07(火) 07:51:33.34ID:hIILJ8zA0
次の議題は『gotoは活用すべきか全面廃止するべきか』でうわぁなにをするやめ・・・
2023/03/07(火) 13:35:22.89ID:914niPGe0
行き先はhellで
2023/03/07(火) 19:20:42.99ID:L3ZoYgrgd
いいか?C言語について俺に聞け
VAX11でcのコンバイラをcで作ろうとしたのはワシだ
当時のyacc lexに謎の挙動があって嫌気がさして失敗したが、、?
2023/03/07(火) 19:38:38.87ID:2Q8k5rzL0
創造主を作ったのは、オレだ、みたいな
606デフォルトの名無しさん (ワッチョイ 13ad-Qpn1)
垢版 |
2023/03/07(火) 22:59:35.82ID:s3GtgFEy0
インド料理屋で、NANを頼みました。
607デフォルトの名無しさん (ワッチョイ 13ad-Qpn1)
垢版 |
2023/03/07(火) 23:06:20.52ID:s3GtgFEy0
>>605
そういえばID論ってのがあって、何か高度な存在が人間や宇宙を作ったってやつだが(昔ながらの神が作ったというのと似ているが神ではない)、
それならばその高度な存在はどのようにして作られたのか?それはまた別の高度な存在によって作られたのか?
とするとその存在も別のもっと高度な何かに作られたのか?という具合に無間ループになってしまう。
2023/03/07(火) 23:18:55.74ID:aKlG86O40
ID論てのは地球のたった数億年で生命が生まれたのが信じがたいってだけで、
元の生命はどこかでもっと時間をかけて生まれたんじゃないかという話。
2023/03/08(水) 00:40:31.06ID:diq3Y+zm0
興味深いお話ですがスレ違いです
2023/03/08(水) 08:33:16.96ID:qdKF3wc3d
Cインタプリタなら昔作った
当時こういうの流行ってたし
いくつか書籍化もされてる
2023/03/08(水) 08:47:42.99ID:D4+z1pfo0
どうせならB作ればよかったのに
2023/03/08(水) 09:22:43.28ID:fOZ1V1tZd
>>607
ブートストラップローダという名前がついたのと似てるなw
コンピュータ起動時に次々と自分より大きいローダを読み込んで起動する様が「自分の靴紐を持ち上げて空を飛ぶ」ような無茶に思えるから
2023/03/08(水) 12:12:57.95ID:wYi2NpnKd
鉄則

1 困った時のGOTO勝利
2 CALL関数はマクロ展開のヘッダファイル
3 SQL呼び出しはstructの前に敗北
4 while こそループの王 forは邪教
5 そこでbreakするな
6 switch文が見えたらバグの腐海
2023/03/08(水) 12:52:17.24ID:qdKF3wc3d
でもswitchの巨大状態ループ便利なんよね
バグの温床かもしれんけどメンテは凄く楽
2023/03/09(木) 09:47:34.15ID:rNyfncCj0
あれやって 条件成立まって あれやって を 状態遷移しながらぶん回すときは
状態変数を int にして 巨大switch にしたくなる

けど こことここの間に新たな状態差し込みたいってときに 状態変数値どうしよう? っておよよする
2023/03/09(木) 09:53:04.07ID:rH46BtzXM
状態変数は列挙型にしておけば状態の追加や修正に合わせて具体的な値は勝手に変わる
2023/03/09(木) 10:05:04.42ID:rNyfncCj0
>>616
おおよそそれが一番良い解法なんだろうけど
次の状態へ ってのを同じ記述でいきたいよね と (return sts+1)
2023/03/09(木) 10:37:21.41ID:zXViYC6t0
FSMだね
古典的なハード設計では常套手段
2023/03/09(木) 10:42:55.43ID:m8Mymp8XM
状態マシンの欠点は割込みや並列処理の扱いが非常に厄介なところ
複数箇所から状態変数を更新される可能性を考慮すると泥沼に嵌る
2023/03/09(木) 10:48:34.22ID:kE5o8bWH0
更新処理は一カ所にして、順番待ちにするのが吉
2023/03/09(木) 10:54:14.30ID:WaHsZI+cM
通常処理のメインループと外部割込みの割込みハンドラ(特に緊急割込み処理)を同じキューで順番に更新すると処理が破綻しないか?
2023/03/09(木) 11:08:05.83ID:zXViYC6t0
ノンプリエンプティブなマルチは今でも普通にやる
問題なきゃそれが楽だから
2023/03/09(木) 11:12:46.89ID:sK4pplDk0
組込みではプリエンプティブが一般的
応答性最優先でCPUの実行権を強制的に奪わないと最悪の場合は事故に繋がる
2023/03/09(木) 13:56:50.62ID:1gP/2BE4d
問題なきゃって言ってるのに最悪の場合って・・・
2023/03/09(木) 14:41:35.25ID:yDS62QUEM
組込みシステムのタスクスケジューラーでノンプリエンプティブマルチタスクって地雷源もいいところだろ
自殺願望でもあるのか
2023/03/09(木) 16:23:16.50ID:pN9rkknD0
組み込みと一言で括られてプリエンティブで良い悪いの議論をされるの抵抗ある人がここにいるけど俺以外でもかなり多いんじゃないかな
プリエンティブはタスクスイッチ自体が割り込み禁止を伴うクリティカル処理だからそれが組み込みに適しているとはいい難い
タスクスイッチのレジスタ退避復帰で何十サイクルも消費して待ってる割り込みが処理できずにいるのが許容できかは案件により過ぎる
片やノンプリでは少なくとも割り込みを汚さない
従って俺はどんな案件でも通用するノンプリでまず検討する事を推奨したい。プリエンでもタイミング的に問題ないねとなったら移行すればいい
いきなりプリエンありきで作る方が自殺行為に見える
2023/03/09(木) 16:36:55.55ID:StryrQ2LM
タイミング的に問題ないという判断の前提が一定時間以内に必ず応答出来るという保証が必要
応答時間が保証されないノンプリエンプティブ環境でシステム設計とか殆ど不可能にしか思えない
2023/03/09(木) 16:39:33.97ID:pN9rkknD0
割り込みにも大別してすぐに応答が必要なもの、メインのキューに回してもよい優先度低のものの2種類存在する
プリエンティブを採用できるかどうかは前者の応答にどれだけの遅延が許容されるかという事になる
割り込みハンドラを普通にCで書くとハンドラ内で使用するレジスタの退避コードが適当に生成されるが、
許容時間によってはインラインアセンブラで最小限のレジスタで書かざるを得ない場合がある
そういう案件だとプリエンティブの採用はありえない
2023/03/09(木) 16:41:41.13ID:pN9rkknD0
あーこれってノンプリエンプティブを何か誤解してる奴が話に参加してるってだけか
理解したわぁ
2023/03/09(木) 16:45:38.25ID:pN9rkknD0
623 625 627 これ同じ人か
もうちょっと勉強してから参加しようね
2023/03/09(木) 16:48:44.72ID:hgw38TJYM
いやその通りだよ
保証出来るようにアセンブラすら併用せざるを得ないのが泥沼の組込み開発
それでも駄目ならソフトウェアでなく専用ハードで物理的に処置する方向を検討する
2023/03/09(木) 16:57:03.69ID:EoI0IUhJM
ちなみにとある産業用モータドライバー基板開発のお話し
2023/03/09(木) 17:02:44.72ID:pN9rkknD0
>>631
タイミング調整にアセンブラ併記は組み込み案件でなくても普通に行われてるでしょ
それと専用ハードって簡単に言うけど、大抵の組み込み案件ってハードの部品点数減らしていく傾向だから非現実的な提案にしか見えないよ
簡単に用意できるなら苦労しないし廃業だわ
2023/03/09(木) 17:08:56.67ID:pN9rkknD0
そもそも俺が今相手してる奴って全員ID変えてどちら様だよ
議論もまともにできず論点ずらしにも失敗してお前ほんと今みじめだぞ
2023/03/09(木) 17:11:58.61ID:pN9rkknD0
よくみたらこれワッチョイスレじゃん全部ばれてて草
2023/03/09(木) 17:14:52.84ID:AnxNC5rK0
623はともかく 625と627はワッチョイ同じじゃん
2023/03/09(木) 17:20:18.66ID:iNLkXR0fM
要はトータルコストの問題
この件は高価な材料(主にレアアース)を多量に使用したモーターを安価な代替品に置き換えて
同等の能力を発揮させるために高度な電子制御(いわゆるベクトル電流制御)で駆動するのが狙いだった
実際メインのマイコン処理だけでは追い付かずセンサ周りの処理は別チップのDSPを採用してる
結果的に制御系のコストは増加したが全体としては前システムの約7割程度の費用に抑えられた
長文失礼
2023/03/09(木) 17:22:17.10ID:pN9rkknD0
>>623も言ってることおかしいけど別回線か何かだろ
そもそも組み込みはその最悪ケースを見積もりながら設計していくって前提知識がないし
2023/03/09(木) 17:22:30.90ID:kE5o8bWH0
自動運転車での危険回避行動のロジックとか、聞けるのかと楽しみにしてたのに
2023/03/09(木) 17:34:00.29ID:mZ/OHyfS0
電気・電子
https://rio2016.5ch.net/denki/
2023/03/09(木) 17:41:37.81ID:zXViYC6t0
ハード絡みの話が出るのは仕方ないだろ
COBOLじゃないんだから
2023/03/09(木) 17:50:21.11ID:pN9rkknD0
>>637
これを1行で要約するとヤバいなあ…設計見積もりガバガバで採用したマイコンで処理できなくてハード追加調達して結果的に動いたわろたってことだろ
最近のH3失敗もだけど予算まともでもこういう経験値の奴らで作られる可能性を考えると寒いなあ
暖ったけえ話を知りたい
2023/03/09(木) 17:54:10.14ID:zXViYC6t0
若いのに頭固いっていうのかな
他人の言うことを聞く耳持たず自分の思い込みを自画自賛してるよな
2023/03/09(木) 18:26:27.17ID:Dl2bLbopM
このスレの年齢層はとても高い
2023/03/09(木) 18:29:05.52ID:sK4pplDk0
精神年齢は?
2023/03/09(木) 18:33:49.17ID:sK4pplDk0
疑心暗鬼で個人攻撃
プログラムではなくてワッチョイを語る
世も末だな
2023/03/09(木) 20:35:29.98ID:pN9rkknD0
最悪の場合は事故さん(>>623)がなんか被害妄想を始めてるけど
俺の主張は>>626以降で出してるから後は興味ないんだわ
反論があるならすればいいがせめてこのスレと関係ある技術的な話をしてね
2023/03/09(木) 20:49:30.54ID:sK4pplDk0
組込みマイコンでは常識的なレジスタバンク切替やコンテキストスイッチングのことに触れずに
レジスタ退避や復帰でサイクル消費するとか言ってる時点で組込み開発の経験が無いんだろうな
ということは分かる
余程の簡易的なものを除けばメインと割込みでいちいちスタック経由でレジスタ退避するような
間抜けなマイコンは無いだろ
それはx86のような汎用CPUの構造だ
2023/03/09(木) 21:04:47.03ID:VZ2yRc9EM
似たような意見が出てきたので補足するとバンク切替なら大体2,3クロックでレジスタセット丸ごと切り替わるから割込みのオーバーヘッド自体は大した負荷にはならない
反面x86の様な大規模なレジスタ群は持てないのでそもそもの用途と構造が違う
2023/03/10(金) 06:51:36.78ID:wZRM+8gY0
ドヤってるけど大したこと言ってないな
2023/03/10(金) 07:19:22.02ID:gnQOQJYP0
そう言うなら後出しではなくて自分から大したこと語ってくれ
2023/03/10(金) 07:50:43.93ID:wZRM+8gY0
マルチで何タスクを並行で動かすのかによるだろ裏レジスタだけで済むかどうかは
2023/03/10(金) 07:56:30.74ID:wZRM+8gY0
無結合マルチCPUで楽々解決なんてこともあったな
2023/03/10(金) 07:57:42.45ID:gnQOQJYP0
知ってる範囲では8レジスタ×4バンクというのがあった
日本製(現在は事業撤退済)
2023/03/10(金) 08:08:15.26ID:gnQOQJYP0
そもそもマルチタスクのタイマ割込みの他に外部ポートからの多重割込みは
優先順位とレジスタ割当てをかなり慎重に検討するべき事項
並列処理の仕様はソフト設計の基本
2023/03/10(金) 08:24:52.79ID:wZRM+8gY0
並列じゃないソフト設計も普通にあるんだが
2023/03/10(金) 08:34:55.28ID:gnQOQJYP0
まあ外部割込みを一切禁止して常にポーリングでポート監視するシステムも無いことは無いが
ごく単純なパターンに限られるけどな
普通は外部からの入出力のトリガは割込みで受け付ける
2023/03/10(金) 08:41:29.45ID:wZRM+8gY0
そもそもタイミングがシビアなところはハードでできるのはそうするし
かなり特殊なケースにもFPGAの対応力はありがたい
2023/03/10(金) 08:47:32.61ID:gnQOQJYP0
そこまで行くとソフト設計者の範疇の外
2023/03/10(金) 08:50:32.68ID:wZRM+8gY0
ハードソフト協調設計をする中でソフトでどこまでやるかってこと
2023/03/10(金) 08:59:18.03ID:OFFvcl9SM
士農工商メカエレソフト
ソフト屋底辺の悲しさ
ハードソフト分担は大体は製品企画段階で決まる
メカ屋やエレキ(ハード屋)の尻拭いがソフト屋の仕事
2023/03/10(金) 09:06:33.88ID:+DlQ4xGFM
DSPあたりまではソフトでカバー出来るけどFPGAにまでなるとハードの仕事
2023/03/10(金) 09:17:19.56ID:wZRM+8gY0
CでROM焼きしてんのと
VerilogでFPGAやってんのは
遠くから見ても見分けがつかない
664デフォルトの名無しさん (アウアウエー Sae3-MJlW)
垢版 |
2023/03/10(金) 16:29:37.22ID:9R6reiLca
>>644
映画Winny観て来た
時代考証が微妙なところもあったが
ノスタルジー感じたい人は逝ってヨシ
665デフォルトの名無しさん (アウアウエー Sae3-MJlW)
垢版 |
2023/03/10(金) 16:33:31.81ID:9R6reiLca
ちなみに映画中に出て来たCのソースコードは
逆コンパイルしたようなコードで
変数名がめちゃくちゃだった
666デフォルトの名無しさん (アウアウエー Sae3-MJlW)
垢版 |
2023/03/10(金) 16:35:25.12ID:9R6reiLca
local_001 とか
local_666 みたいな
ずらずら並んでた
2023/03/10(金) 20:16:30.19ID:EGVo42nQ0
私を崇めよ
関数ポインタ配列が楽になる
2023/03/10(金) 23:25:55.00ID:edbNYall0
>>608
パン=スペルミア仮説ともいいますね
2023/03/11(土) 10:14:57.49ID:AyWAtMH4d
>>665
オープンソースの何かのを借りてくればいいのにと思うが
正当な目的外だからだめかな
2023/03/11(土) 10:33:06.84ID:VCVl4BMy0
実際に逆コンパイルされたものじゃないのか?
うろおぼえだが Winny の改造版 (?) を作ってた Lark 氏が逆コンパイルしたソースコードを放流していたような記憶がある。
671デフォルトの名無しさん (スププ Sd9a-cOGZ)
垢版 |
2023/03/11(土) 15:00:32.33ID:R1SsWCE7d
scanf関数もクセが強い
672デフォルトの名無しさん (ワッチョイ 7aad-JIpj)
垢版 |
2023/03/11(土) 18:34:55.65ID:Hy+SW7JA0
scanf の読み方は?
2023/03/11(土) 18:46:17.31ID:anM6KfKL0
すきゃんふ
2023/03/11(土) 19:06:51.49ID:HIr/E9uU0
すきゃんえふ
2023/03/11(土) 19:36:37.96ID:4mLQMbcb0
当時、京都府警がソースコードを押収したとか言ってなかったっけ
だとすると今でもあるのかな
2023/03/11(土) 20:41:12.44ID:0fOr9zyF0
そんな古いもんあんのかね
そもそも自分らの不手際で逮捕しなきゃいけない羽目になったんだから要らなくなったら即ポイ捨てだと思うけどね
2023/03/12(日) 07:29:50.79ID:WhaHkT9k0
すきゃんてぃ
2023/03/12(日) 12:04:15.69ID:8DcR0+gea
>>670
47氏本人が家宅捜査される場面で
編集中のソースコードって設定だから
本人がわざわざ逆コンパイルして使ってるのは可笑しい
仮に変数名自分で付けてたとしてもあんな名前でコード描いてたとは思えない
2023/03/12(日) 12:07:04.69ID:8DcR0+gea
>>672
SNMPを「すぬんぷ」って発音してる人が居て
会話中に「えっ???」ってなった
2023/03/12(日) 12:08:27.97ID:8DcR0+gea
あと別の人だけどswaponは「すわぽん」っていうのも
聴いてぎりぎり判るラインだったわ
2023/03/12(日) 12:10:31.51ID:8DcR0+gea
>>676
ほんそれ
京都府警のチョンボ情報漏れが先で逮捕に至ったのに
映画では逆の展開にされていて引いたわ
圧力掛かったんかね
2023/03/12(日) 12:11:07.17ID:zZ3L0xxp0
>>678
他のどんなコードを持ってきたとしても「あんなコードのはずがない」という突っ込みは受けそう。
2023/03/12(日) 12:23:09.80ID:/+cwNiL3d
京都府警りょうのキンタマ
2023/03/12(日) 14:34:58.81ID:zw46Mo410
使われているソースコードはおそらくこれということらしい。
https://github.com/loadletter/Winny-p2p

>>678
ちゃんと考証するならそりゃそうだが
重要でないところに小ネタを仕込むのもよくあることでしょ。
2023/03/12(日) 14:38:15.75ID:36zMid+Td
>>682
有り得るね
https://engawa.5ch.net/test/read.cgi/poverty/1377775593/
2023/03/13(月) 11:21:17.63ID:bF2IN6wDa
>あんなコードのはずがない

47氏死んでからの映画化ならではだな
2023/03/13(月) 15:53:24.36ID:gUMqyWwJd
ジョブスの映画はもっと酷かったぞ
ウォズがこれがアップルIだ!っつってジョブズに見せると画面にアスキーコード順に文字が出てくるだけ
ジョブズがオオスゲーって顔するんだけどw

もっともそこですでにBASICやゲームの画面が出てくるのもおかしいんだけどな
2023/03/13(月) 20:33:15.11ID:ZWncv4YS0
CALL -151
2023/03/13(月) 21:56:22.40ID:sKLW0uN10
>>687
脇役で出てくるPCの時代考証がおかしかったりしたあれか
690デフォルトの名無しさん (ワッチョイ 7aad-JIpj)
垢版 |
2023/03/14(火) 01:18:17.67ID:eWxvxvkk0
>>687
その映画見てないので分からないが、もしや Apple ][ ではなく Apple I のこと?
だったらワンボードマイコンなのでテレビ画面に文字が出るだけでも当時は凄い事だったと思うが。
Apple I が作られたのは1976年だしな。
2023/03/14(火) 03:06:45.91ID:TJZO9aGD0
もしやもクソも誰もApple2の話なんかしてないと思うがキミはいつもそんな調子なのかね
692デフォルトの名無しさん (スププ Sd9a-cOGZ)
垢版 |
2023/03/14(火) 09:46:34.46ID:tHJOYlO8d
ごく初歩的な質問です 変換して指定子を何にすればよいか教えてください

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int id;
char ss[80];

strcpy(ss,"123");
id = atoi(ss);
printf("%d\n", ss);
return 0;
}
を実行するとでデタラメな数字が出力されます。
変換して指定子をなににすればよいのでしょうか?
693デフォルトの名無しさん (スププ Sd9a-cOGZ)
垢版 |
2023/03/14(火) 09:57:04.49ID:tHJOYlO8d
692です 解けました 寝ぼけていたみたいです
2023/03/14(火) 10:05:55.26ID:3kN/fw0O0
%dとか%sとかの呼び方って、変換指定子、書式指定子、フォーマット指定子のどれがいいんすか?
695デフォルトの名無しさん (スププ Sd9a-cOGZ)
垢版 |
2023/03/14(火) 10:12:18.85ID:tHJOYlO8d
ある本によると、たんなる、「変換仕様」や「出力変換仕様」となってます
2023/03/14(火) 10:34:18.75ID:3kN/fw0O0
printfで出力変換仕様ならscanfでは入力変換仕様になりそうっすね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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