!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
C言語なら俺に聞け 160
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ ff63-dxp0)
2022/12/28(水) 10:40:30.02ID:PyoNDBFu0551デフォルトの名無しさん (ワッチョイ 7d10-W5vA)
2023/02/28(火) 16:44:22.88ID:295BsPXb0 >スタックの操作で領域管理
8086系だとスタックレジスタ直接使うと遅いんじゃなかったっけ?
MOV AX、[SP+10]
とかやるより
MOV AX、[TEMP]
...
TEMP: DW 0000h
ってやる方が速いとか。
BASIC時代のマシン語CALL時のレジスタエリアは16バイトってトラウマが・・・。
8086系だとスタックレジスタ直接使うと遅いんじゃなかったっけ?
MOV AX、[SP+10]
とかやるより
MOV AX、[TEMP]
...
TEMP: DW 0000h
ってやる方が速いとか。
BASIC時代のマシン語CALL時のレジスタエリアは16バイトってトラウマが・・・。
552デフォルトの名無しさん (アウアウウー Sa39-bn+B)
2023/02/28(火) 21:38:56.96ID:EshvOxGGa ダミーセクションって、IBMのメインフレームのアセンブリ言語の DSECTですか?
553デフォルトの名無しさん (ワッチョイ b6d2-xnN+)
2023/02/28(火) 21:47:36.63ID:svcsEAcG0 うん
554デフォルトの名無しさん (スップ Sdfa-eMhE)
2023/03/01(水) 20:42:10.06ID:fErXdR4ud555デフォルトの名無しさん (ワッチョイ 9d5f-XTx3)
2023/03/01(水) 23:36:37.44ID:5C60qBo90 >>550
cyclic
cyclic
556はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 693e-wWxq)
2023/03/02(木) 00:05:39.48ID:pZfd6NSK0 そういうのはいわゆる自転車小屋の議論になりがち。
そこそこ盛り上がりはすることもあるかもしれないけどあまり意味のある結論は出ないよ。
そこそこ盛り上がりはすることもあるかもしれないけどあまり意味のある結論は出ないよ。
557デフォルトの名無しさん (ワッチョイ da79-Arif)
2023/03/02(木) 03:04:30.24ID:eGjuMjwU0 するか否か、1ビットのフラグの命名に他者を巻き込む議論が本当に必要ですかということか
すなわち名前はflagとかで変数宣言部に日本語コメントでも添えた方が建設的ということだな?違うか?
すなわち名前はflagとかで変数宣言部に日本語コメントでも添えた方が建設的ということだな?違うか?
558デフォルトの名無しさん (スップ Sdfa-5jsL)
2023/03/02(木) 07:06:54.36ID:xa7MSIOTd 変数名の付け方は案件による
無論、一般論などない
主観と思い込みで強弁するやつはいるけどね
無論、一般論などない
主観と思い込みで強弁するやつはいるけどね
559デフォルトの名無しさん (ワッチョイ 7646-BmO7)
2023/03/02(木) 09:03:08.54ID:GoAAqo+J0 C-gengo wa mada nihon-go kakenai no?
bool 先頭に戻って検索 = 真 ;
bool 先頭に戻って検索 = 真 ;
560デフォルトの名無しさん (ワッチョイ 76cf-okFi)
2023/03/02(木) 16:32:03.69ID:N0PfEOQ90 質問の仕方でどういうコード書いてるか垣間見えるのはあるな
int searchtype = FROM_TOPとかBOTTOMとかBACKWARDみたいな持ち方ならそんな質問出ないだろうし
int searchtype = FROM_TOPとかBOTTOMとかBACKWARDみたいな持ち方ならそんな質問出ないだろうし
561デフォルトの名無しさん (スップ Sdfa-eMhE)
2023/03/02(木) 17:21:24.58ID:y83mRLNqd562はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 693e-wWxq)
2023/03/03(金) 01:19:24.14ID:5ZXS0iFm0563デフォルトの名無しさん (スップ Sdda-iZis)
2023/03/03(金) 08:02:43.32ID:an7QtCXRd 1Hzぐらいの速度で計測すれば何かわかるかもしれない
564デフォルトの名無しさん (ワッチョイ 6eda-3xjR)
2023/03/03(金) 08:14:12.93ID:jW6Dg0m70 1Hzだと速度的には1秒周期なので測定の意味がない
565デフォルトの名無しさん (ワッチョイ 7663-W5vA)
2023/03/03(金) 22:40:53.27ID:1TAJ9GtV0 もしかするとCPUクロックをそこまで落としてデバッグしたいとかw
566デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/04(土) 06:01:07.88ID:2lfmGWRw0 [sp+10]はメモリアクセス1回だが
[temp]は2回だな
8086だとキャッシュないからメモリのウエイト数の影響をモロに受ける
どciscでパイプラインなんかないし
[temp]は2回だな
8086だとキャッシュないからメモリのウエイト数の影響をモロに受ける
どciscでパイプラインなんかないし
567デフォルトの名無しさん (スッププ Sd33-0t2P)
2023/03/04(土) 19:01:51.83ID:siYz8HOgd Cのコードを書くのにアセンブラまで意識するのか、、
立派な心がけあるな
精進しなされ
でも、CPUやコンバイラで違うじゃん、、、
立派な心がけあるな
精進しなされ
でも、CPUやコンバイラで違うじゃん、、、
568デフォルトの名無しさん (ワッチョイ 1302-ScW/)
2023/03/04(土) 21:31:31.02ID:mhQJa69K0 >>566
勘違いしてない?
勘違いしてない?
569デフォルトの名無しさん (ワッチョイ 1969-zdzo)
2023/03/04(土) 21:33:37.98ID:K3zEUrJN0 [sp+10]が1回なら[temp]も1回じゃね
命令のフェッチは数えないんでしょ?
プリフェッチはパイプラインみたいなもんじゃね?
命令のフェッチは数えないんでしょ?
プリフェッチはパイプラインみたいなもんじゃね?
570デフォルトの名無しさん (ワッチョイ 1361-y7Dr)
2023/03/04(土) 23:58:44.62ID:D8X7oasM0 素の8086にsp使えるアドレッシングはないのでbpで…
mov ax, [bp+disp] 命令3~4バイト 8+9クロック
mov ax, [TEMP] 命令4バイト 8+6クロック
と実効アドレスの計算時間に差があったという大昔のお話
mov ax, [bp+disp] 命令3~4バイト 8+9クロック
mov ax, [TEMP] 命令4バイト 8+6クロック
と実効アドレスの計算時間に差があったという大昔のお話
571デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/05(日) 06:15:37.72ID:nSao/Dea0 >>568
何が?
何が?
572デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/05(日) 06:58:01.26ID:94fNx05VM 8086には現在のような深いパイプラインは無いがそれでもEU(Execution Unit : 実行ユニット)とBIU(Bus Interface Unit : バスインタフェースユニット)は独立しており
メモリアクセスと内部のALUはそれぞれ別々に動作する
ある意味初歩的な2段パイプラインとも言える構造で単純なクロックサイクルの加算とはならない
メモリアクセスと内部のALUはそれぞれ別々に動作する
ある意味初歩的な2段パイプラインとも言える構造で単純なクロックサイクルの加算とはならない
573デフォルトの名無しさん (ワッチョイ 1302-ScW/)
2023/03/05(日) 07:13:34.61ID:cmZGkkdl0574デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/05(日) 08:11:12.86ID:nSao/Dea0575デフォルトの名無しさん (ワッチョイ 13ad-NCuH)
2023/03/05(日) 12:43:47.21ID:nmaj3sub0 >>567
昔昔はそういうものだったんよ。
Cは、
・プログラマの責任において何でもできる
・コンパイラはプログラマの意思に忠実であれ(余計な最適化なんかするんじゃねえ!)
ってこと。だから、
a=a+1;と、a++;は違う。
前者は加算命令、後者はインクリメント命令になってほしいというのが、プログラマの意志。
ただ、Cが色々な場で広く使われるようになって、最適化を進めるしかなくなったから、そんなのどうでもいいことになったけど。
昔昔はそういうものだったんよ。
Cは、
・プログラマの責任において何でもできる
・コンパイラはプログラマの意思に忠実であれ(余計な最適化なんかするんじゃねえ!)
ってこと。だから、
a=a+1;と、a++;は違う。
前者は加算命令、後者はインクリメント命令になってほしいというのが、プログラマの意志。
ただ、Cが色々な場で広く使われるようになって、最適化を進めるしかなくなったから、そんなのどうでもいいことになったけど。
576デフォルトの名無しさん (ワッチョイ 1969-zdzo)
2023/03/05(日) 12:47:05.12ID:s1YdjeUN0 >>574
だからさ……それを2回っていうなら、[sp+10]も2回だろ
だからさ……それを2回っていうなら、[sp+10]も2回だろ
577デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/05(日) 13:30:59.36ID:nSao/Dea0578デフォルトの名無しさん (ワッチョイ 1969-zdzo)
2023/03/05(日) 15:05:57.71ID:s1YdjeUN0579デフォルトの名無しさん (ワッチョイ 13ad-Qpn1)
2023/03/05(日) 15:07:29.13ID:YlwUczDE0 >>575
ま、しかし、昔はコンパイラの最適化がしょぼかったというのもあるな。
CPU (特に 8 bit CPU とか) がC言語等のいわゆる高級言語を全く意識して作られていないというのが最大の問題だったのかも知れないが。
ま、しかし、昔はコンパイラの最適化がしょぼかったというのもあるな。
CPU (特に 8 bit CPU とか) がC言語等のいわゆる高級言語を全く意識して作られていないというのが最大の問題だったのかも知れないが。
580デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/05(日) 15:41:40.37ID:nSao/Dea0581デフォルトの名無しさん (スッップ Sd33-c1aN)
2023/03/05(日) 16:48:35.64ID:0aHQQO/od582デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/05(日) 17:03:05.50ID:nSao/Dea0583デフォルトの名無しさん (スッップ Sd33-c1aN)
2023/03/05(日) 17:27:59.49ID:0aHQQO/od 間違い、>>581は6809の話だった…
ややこしくなってるが
MOV AX、[SP+10]
がspレジスタから10バイト後を読むなら
MOV AX、[TEMP]
はアドレスTEMPを読む意味だろ
8086ニーモニックをよく知らないが
ややこしくなってるが
MOV AX、[SP+10]
がspレジスタから10バイト後を読むなら
MOV AX、[TEMP]
はアドレスTEMPを読む意味だろ
8086ニーモニックをよく知らないが
584デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/05(日) 17:44:11.51ID:nSao/Dea0 >>583
6809にしたってFDBディレクティブで置いた定数はディスプレースメントじゃないし
6809にしたってFDBディレクティブで置いた定数はディスプレースメントじゃないし
585デフォルトの名無しさん (ワッチョイ e9b3-ftr4)
2023/03/05(日) 18:29:27.81ID:On/jxRV/0 #include <stdio.h>
#include <math.h>
void main(void){
double a, b, c;
double x1;
a = 4;
b = -3;
c = 1;
x1 = (-b + sqrt(pow(b,2) - 4*a*c)) / (2 * a);
printf("%f\n", x1);
}
printfが-nanて表示します。これはどういう意味でしょうか?
#include <math.h>
void main(void){
double a, b, c;
double x1;
a = 4;
b = -3;
c = 1;
x1 = (-b + sqrt(pow(b,2) - 4*a*c)) / (2 * a);
printf("%f\n", x1);
}
printfが-nanて表示します。これはどういう意味でしょうか?
586デフォルトの名無しさん (スッププ Sd33-0t2P)
2023/03/05(日) 18:43:57.85ID:KnQWIUK4d587デフォルトの名無しさん (ワッチョイ 8b63-Qpn1)
2023/03/05(日) 18:53:30.15ID:M62PQQGq0588デフォルトの名無しさん (ワッチョイ e9b3-ftr4)
2023/03/05(日) 19:03:21.29ID:On/jxRV/0 あー、なんかわかってきました
そういうことか
サンクス
そういうことか
サンクス
589はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 013e-zdzo)
2023/03/05(日) 19:07:20.35ID:AE3nXsIn0 >>585
sqrt に負数を渡した場合には定義域エラーとなり、定義域エラーのときは処理系定義の値を返す。
その処理系では処理系定義の値というのが nan だということになる。
言語仕様では詳細は規定されていないけれど
一般に浮動小数点の表現として使われる IEEE 754 などでは非数 (not a number) を表現のひとつとして持ち、
意味のある計算結果にならなかったときは非数がセットされる。
not a number の略で NaN 。
処理系によっては定義域エラーをハンドリングする方法を用意してあることもあるけど、
発生させないように事前にチェックしたほうが基本的には簡単だと思う。
sqrt に負数を渡した場合には定義域エラーとなり、定義域エラーのときは処理系定義の値を返す。
その処理系では処理系定義の値というのが nan だということになる。
言語仕様では詳細は規定されていないけれど
一般に浮動小数点の表現として使われる IEEE 754 などでは非数 (not a number) を表現のひとつとして持ち、
意味のある計算結果にならなかったときは非数がセットされる。
not a number の略で NaN 。
処理系によっては定義域エラーをハンドリングする方法を用意してあることもあるけど、
発生させないように事前にチェックしたほうが基本的には簡単だと思う。
590デフォルトの名無しさん (スッップ Sd33-c1aN)
2023/03/05(日) 19:21:09.18ID:0aHQQO/od よくわからないんだが
>>574が勘違いだな
TEMP: dw 0000h
はデータ0000hをメモリに置いてそのアドレスをTEMPと定義するという命令(アセンブラ疑似命令)
MOV AX,TEMP
はAXレジスタにそのアドレス値を入れる
MOV AX,[TEMP]
はAXレジスタにそのアドレスの内容(0000H)を入れる
さらに[0000H]の内容を読むにはもう1命令必要になる…はず
6809なら1命令で読めるがあまり使われなかったと思うどっちにしろ遅くなるので
>>574が勘違いだな
TEMP: dw 0000h
はデータ0000hをメモリに置いてそのアドレスをTEMPと定義するという命令(アセンブラ疑似命令)
MOV AX,TEMP
はAXレジスタにそのアドレス値を入れる
MOV AX,[TEMP]
はAXレジスタにそのアドレスの内容(0000H)を入れる
さらに[0000H]の内容を読むにはもう1命令必要になる…はず
6809なら1命令で読めるがあまり使われなかったと思うどっちにしろ遅くなるので
591デフォルトの名無しさん (ワッチョイ fbda-VwsU)
2023/03/05(日) 19:26:59.51ID:eomhsMcE0 6809の用語でいうとメモリ間接参照アドレッシングだな
592デフォルトの名無しさん (ワッチョイ fbda-VwsU)
2023/03/05(日) 19:30:46.77ID:eomhsMcE0 ちなみに1命令で読むのはダイレクトページ参照アドレッシングな
6809ではあまり使われなかったけど、6502などではこれが使えないと実質何も出来ない
6809ではあまり使われなかったけど、6502などではこれが使えないと実質何も出来ない
593デフォルトの名無しさん (テテンテンテン MMeb-8VhG)
2023/03/05(日) 23:40:03.63ID:yUIw0mIIM >>585
nanは、何処かでnanになると、その後の演算全てがnanになる
なのでsqrtのnanが伝搬してprintfがnanを表示した
ゲーム(特に3D)は、油断するとnanを伝搬させてしまう事があって、キャラがグチャグチャに壊れて表示されるのは、それが原因
nanを伝搬させるとデバッグが大変なので、nanを出さないように細心の注意が必要だ
sqrtとか特に割り算(/)に気を付けないといけない
nanは、何処かでnanになると、その後の演算全てがnanになる
なのでsqrtのnanが伝搬してprintfがnanを表示した
ゲーム(特に3D)は、油断するとnanを伝搬させてしまう事があって、キャラがグチャグチャに壊れて表示されるのは、それが原因
nanを伝搬させるとデバッグが大変なので、nanを出さないように細心の注意が必要だ
sqrtとか特に割り算(/)に気を付けないといけない
594デフォルトの名無しさん (スフッ Sd33-RL4O)
2023/03/06(月) 02:42:50.81ID:Ht1FmqqLd >>593
え、割り算でNaN出る?と一瞬思ったけど、0.0/0.0かな?多分
珍しいケースに思える
非ゼロ/0.0でinfが出るのは関数の根を簡易に求めるのに重宝するけど(逆数が極)、NaNが出る可能性にまでは気を配って無かったのでナイス指摘
え、割り算でNaN出る?と一瞬思ったけど、0.0/0.0かな?多分
珍しいケースに思える
非ゼロ/0.0でinfが出るのは関数の根を簡易に求めるのに重宝するけど(逆数が極)、NaNが出る可能性にまでは気を配って無かったのでナイス指摘
595デフォルトの名無しさん (スフッ Sd33-RL4O)
2023/03/06(月) 02:51:49.35ID:Ht1FmqqLd >>589
IEEEはほぼCの為に制定されたようなものでは?
fpuなんて改造してナンボな本場のnumber cruncher達(ほぼFORTRAN/Fortran)は最近までIEEEなんて最近までガン無視だったわけで
今は標準モジュールにIEEEサポート入って普及してるけど
IEEEはほぼCの為に制定されたようなものでは?
fpuなんて改造してナンボな本場のnumber cruncher達(ほぼFORTRAN/Fortran)は最近までIEEEなんて最近までガン無視だったわけで
今は標準モジュールにIEEEサポート入って普及してるけど
596デフォルトの名無しさん (テテンテンテン MMeb-8VhG)
2023/03/06(月) 02:52:25.09ID:Ludh8Y7rM >>594
3Dだとベクトルのノーマライズをしょっちゅうするけど、これはベクトルの長さで割るけど、事前に長さのチェックが漏れてると、ゼロで割ることになる
そういう特殊な状況は確かに稀なんで、リリースに残ってしまうことがある
3Dだとベクトルのノーマライズをしょっちゅうするけど、これはベクトルの長さで割るけど、事前に長さのチェックが漏れてると、ゼロで割ることになる
そういう特殊な状況は確かに稀なんで、リリースに残ってしまうことがある
597デフォルトの名無しさん (テテンテンテン MMeb-8VhG)
2023/03/06(月) 03:02:31.96ID:Ludh8Y7rM >>594
良く考えたら、rsqrtがnanを返してる気がする…
良く考えたら、rsqrtがnanを返してる気がする…
598デフォルトの名無しさん (ワッチョイ 9102-RL4O)
2023/03/06(月) 03:14:56.83ID:VyhKtCOB0 >>596
俺環ではDBL_MIN/0.0でもちゃんとinf吐くから、ノーマライズされるべきベクトル(分母)が正確に0.0というのはdoubleでは考えにくいような…
3Dだとsingle以下のfloat16/8とか使うと聞くから、極端に精度が低過いと起きるのかしら?
俺環ではDBL_MIN/0.0でもちゃんとinf吐くから、ノーマライズされるべきベクトル(分母)が正確に0.0というのはdoubleでは考えにくいような…
3Dだとsingle以下のfloat16/8とか使うと聞くから、極端に精度が低過いと起きるのかしら?
599デフォルトの名無しさん (ワッチョイ 9102-RL4O)
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モードにするとか
>>597
かもね
あと0.0/0.0以外の四則でもnanが出るケースは他にも思い付く(今思い付いた)
inf/infとか
まあ実数関数求根/方程式を解く目的なら(精度上での)解に達した証がinfだから、発生した時点で必ずbreakするし、事実上到達し得ない計算だけど
定義域がパッチワークみたいな複素関数で一々入力のチェックなんてやってられないし、nanには静かに伝播してもらわないと困るけど
とにかく欠損値の無い有限の実数値だけが欲しいだけ(例えばグラフィック)なら、fenv.h/signal.hで例外をヲチしてSIGFPE投げるとか、あるならsnanモードにするとか
600デフォルトの名無しさん (ワッチョイ 8bcf-W5Lg)
2023/03/06(月) 14:19:01.34ID:+b36jU+h0601デフォルトの名無しさん (ワッチョイ 295f-3zFX)
2023/03/06(月) 22:43:56.50ID:K6iDrUwm0 このような状態を「思考障害」と呼び、Cプログラマの2割ほどが患っていると言われています
602デフォルトの名無しさん (ワッチョイ e910-Qpn1)
2023/03/07(火) 07:51:33.34ID:hIILJ8zA0 次の議題は『gotoは活用すべきか全面廃止するべきか』でうわぁなにをするやめ・・・
603デフォルトの名無しさん (ワッチョイ 9397-WI/b)
2023/03/07(火) 13:35:22.89ID:914niPGe0 行き先はhellで
604デフォルトの名無しさん (スッププ Sd33-0t2P)
2023/03/07(火) 19:20:42.99ID:L3ZoYgrgd いいか?C言語について俺に聞け
VAX11でcのコンバイラをcで作ろうとしたのはワシだ
当時のyacc lexに謎の挙動があって嫌気がさして失敗したが、、?
VAX11でcのコンバイラをcで作ろうとしたのはワシだ
当時のyacc lexに謎の挙動があって嫌気がさして失敗したが、、?
605デフォルトの名無しさん (ワッチョイ 8b63-Qpn1)
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論ってのがあって、何か高度な存在が人間や宇宙を作ったってやつだが(昔ながらの神が作ったというのと似ているが神ではない)、
それならばその高度な存在はどのようにして作られたのか?それはまた別の高度な存在によって作られたのか?
とするとその存在も別のもっと高度な何かに作られたのか?という具合に無間ループになってしまう。
そういえばID論ってのがあって、何か高度な存在が人間や宇宙を作ったってやつだが(昔ながらの神が作ったというのと似ているが神ではない)、
それならばその高度な存在はどのようにして作られたのか?それはまた別の高度な存在によって作られたのか?
とするとその存在も別のもっと高度な何かに作られたのか?という具合に無間ループになってしまう。
608デフォルトの名無しさん (ワッチョイ 4110-W5Lg)
2023/03/07(火) 23:18:55.74ID:aKlG86O40 ID論てのは地球のたった数億年で生命が生まれたのが信じがたいってだけで、
元の生命はどこかでもっと時間をかけて生まれたんじゃないかという話。
元の生命はどこかでもっと時間をかけて生まれたんじゃないかという話。
609デフォルトの名無しさん (ワッチョイ 7102-waqZ)
2023/03/08(水) 00:40:31.06ID:diq3Y+zm0 興味深いお話ですがスレ違いです
610デフォルトの名無しさん (スップ Sd73-20ys)
2023/03/08(水) 08:33:16.96ID:qdKF3wc3d Cインタプリタなら昔作った
当時こういうの流行ってたし
いくつか書籍化もされてる
当時こういうの流行ってたし
いくつか書籍化もされてる
611デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/08(水) 08:47:42.99ID:D4+z1pfo0 どうせならB作ればよかったのに
612デフォルトの名無しさん (スッップ Sd33-c1aN)
2023/03/08(水) 09:22:43.28ID:fOZ1V1tZd613デフォルトの名無しさん (スップ Sd73-YAma)
2023/03/08(水) 12:12:57.95ID:wYi2NpnKd 鉄則
1 困った時のGOTO勝利
2 CALL関数はマクロ展開のヘッダファイル
3 SQL呼び出しはstructの前に敗北
4 while こそループの王 forは邪教
5 そこでbreakするな
6 switch文が見えたらバグの腐海
1 困った時のGOTO勝利
2 CALL関数はマクロ展開のヘッダファイル
3 SQL呼び出しはstructの前に敗北
4 while こそループの王 forは邪教
5 そこでbreakするな
6 switch文が見えたらバグの腐海
614デフォルトの名無しさん (スップ Sd73-20ys)
2023/03/08(水) 12:52:17.24ID:qdKF3wc3d でもswitchの巨大状態ループ便利なんよね
バグの温床かもしれんけどメンテは凄く楽
バグの温床かもしれんけどメンテは凄く楽
615デフォルトの名無しさん (ワッチョイ 8b69-nyng)
2023/03/09(木) 09:47:34.15ID:rNyfncCj0 あれやって 条件成立まって あれやって を 状態遷移しながらぶん回すときは
状態変数を int にして 巨大switch にしたくなる
けど こことここの間に新たな状態差し込みたいってときに 状態変数値どうしよう? っておよよする
状態変数を int にして 巨大switch にしたくなる
けど こことここの間に新たな状態差し込みたいってときに 状態変数値どうしよう? っておよよする
616デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 09:53:04.07ID:rH46BtzXM 状態変数は列挙型にしておけば状態の追加や修正に合わせて具体的な値は勝手に変わる
617デフォルトの名無しさん (ワッチョイ 8b69-nyng)
2023/03/09(木) 10:05:04.42ID:rNyfncCj0618デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/09(木) 10:37:21.41ID:zXViYC6t0 FSMだね
古典的なハード設計では常套手段
古典的なハード設計では常套手段
619デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 10:42:55.43ID:m8Mymp8XM 状態マシンの欠点は割込みや並列処理の扱いが非常に厄介なところ
複数箇所から状態変数を更新される可能性を考慮すると泥沼に嵌る
複数箇所から状態変数を更新される可能性を考慮すると泥沼に嵌る
620デフォルトの名無しさん (ワッチョイ 8b63-Qpn1)
2023/03/09(木) 10:48:34.22ID:kE5o8bWH0 更新処理は一カ所にして、順番待ちにするのが吉
621デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 10:54:14.30ID:WaHsZI+cM 通常処理のメインループと外部割込みの割込みハンドラ(特に緊急割込み処理)を同じキューで順番に更新すると処理が破綻しないか?
622デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/09(木) 11:08:05.83ID:zXViYC6t0 ノンプリエンプティブなマルチは今でも普通にやる
問題なきゃそれが楽だから
問題なきゃそれが楽だから
623デフォルトの名無しさん (ワッチョイ fbda-VwsU)
2023/03/09(木) 11:12:46.89ID:sK4pplDk0 組込みではプリエンプティブが一般的
応答性最優先でCPUの実行権を強制的に奪わないと最悪の場合は事故に繋がる
応答性最優先でCPUの実行権を強制的に奪わないと最悪の場合は事故に繋がる
624デフォルトの名無しさん (スップ Sd33-bvRC)
2023/03/09(木) 13:56:50.62ID:1gP/2BE4d 問題なきゃって言ってるのに最悪の場合って・・・
625デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 14:41:35.25ID:yDS62QUEM 組込みシステムのタスクスケジューラーでノンプリエンプティブマルチタスクって地雷源もいいところだろ
自殺願望でもあるのか
自殺願望でもあるのか
626デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 16:23:16.50ID:pN9rkknD0 組み込みと一言で括られてプリエンティブで良い悪いの議論をされるの抵抗ある人がここにいるけど俺以外でもかなり多いんじゃないかな
プリエンティブはタスクスイッチ自体が割り込み禁止を伴うクリティカル処理だからそれが組み込みに適しているとはいい難い
タスクスイッチのレジスタ退避復帰で何十サイクルも消費して待ってる割り込みが処理できずにいるのが許容できかは案件により過ぎる
片やノンプリでは少なくとも割り込みを汚さない
従って俺はどんな案件でも通用するノンプリでまず検討する事を推奨したい。プリエンでもタイミング的に問題ないねとなったら移行すればいい
いきなりプリエンありきで作る方が自殺行為に見える
プリエンティブはタスクスイッチ自体が割り込み禁止を伴うクリティカル処理だからそれが組み込みに適しているとはいい難い
タスクスイッチのレジスタ退避復帰で何十サイクルも消費して待ってる割り込みが処理できずにいるのが許容できかは案件により過ぎる
片やノンプリでは少なくとも割り込みを汚さない
従って俺はどんな案件でも通用するノンプリでまず検討する事を推奨したい。プリエンでもタイミング的に問題ないねとなったら移行すればいい
いきなりプリエンありきで作る方が自殺行為に見える
627デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 16:36:55.55ID:StryrQ2LM タイミング的に問題ないという判断の前提が一定時間以内に必ず応答出来るという保証が必要
応答時間が保証されないノンプリエンプティブ環境でシステム設計とか殆ど不可能にしか思えない
応答時間が保証されないノンプリエンプティブ環境でシステム設計とか殆ど不可能にしか思えない
628デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 16:39:33.97ID:pN9rkknD0 割り込みにも大別してすぐに応答が必要なもの、メインのキューに回してもよい優先度低のものの2種類存在する
プリエンティブを採用できるかどうかは前者の応答にどれだけの遅延が許容されるかという事になる
割り込みハンドラを普通にCで書くとハンドラ内で使用するレジスタの退避コードが適当に生成されるが、
許容時間によってはインラインアセンブラで最小限のレジスタで書かざるを得ない場合がある
そういう案件だとプリエンティブの採用はありえない
プリエンティブを採用できるかどうかは前者の応答にどれだけの遅延が許容されるかという事になる
割り込みハンドラを普通にCで書くとハンドラ内で使用するレジスタの退避コードが適当に生成されるが、
許容時間によってはインラインアセンブラで最小限のレジスタで書かざるを得ない場合がある
そういう案件だとプリエンティブの採用はありえない
629デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 16:41:41.13ID:pN9rkknD0 あーこれってノンプリエンプティブを何か誤解してる奴が話に参加してるってだけか
理解したわぁ
理解したわぁ
630デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 16:45:38.25ID:pN9rkknD0 623 625 627 これ同じ人か
もうちょっと勉強してから参加しようね
もうちょっと勉強してから参加しようね
631デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 16:48:44.72ID:hgw38TJYM いやその通りだよ
保証出来るようにアセンブラすら併用せざるを得ないのが泥沼の組込み開発
それでも駄目ならソフトウェアでなく専用ハードで物理的に処置する方向を検討する
保証出来るようにアセンブラすら併用せざるを得ないのが泥沼の組込み開発
それでも駄目ならソフトウェアでなく専用ハードで物理的に処置する方向を検討する
632デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 16:57:03.69ID:EoI0IUhJM ちなみにとある産業用モータドライバー基板開発のお話し
633デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 17:02:44.72ID:pN9rkknD0 >>631
タイミング調整にアセンブラ併記は組み込み案件でなくても普通に行われてるでしょ
それと専用ハードって簡単に言うけど、大抵の組み込み案件ってハードの部品点数減らしていく傾向だから非現実的な提案にしか見えないよ
簡単に用意できるなら苦労しないし廃業だわ
タイミング調整にアセンブラ併記は組み込み案件でなくても普通に行われてるでしょ
それと専用ハードって簡単に言うけど、大抵の組み込み案件ってハードの部品点数減らしていく傾向だから非現実的な提案にしか見えないよ
簡単に用意できるなら苦労しないし廃業だわ
634デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 17:08:56.67ID:pN9rkknD0 そもそも俺が今相手してる奴って全員ID変えてどちら様だよ
議論もまともにできず論点ずらしにも失敗してお前ほんと今みじめだぞ
議論もまともにできず論点ずらしにも失敗してお前ほんと今みじめだぞ
635デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 17:11:58.61ID:pN9rkknD0 よくみたらこれワッチョイスレじゃん全部ばれてて草
636デフォルトの名無しさん
2023/03/09(木) 17:14:52.84ID:AnxNC5rK0 623はともかく 625と627はワッチョイ同じじゃん
637デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 17:20:18.66ID:iNLkXR0fM 要はトータルコストの問題
この件は高価な材料(主にレアアース)を多量に使用したモーターを安価な代替品に置き換えて
同等の能力を発揮させるために高度な電子制御(いわゆるベクトル電流制御)で駆動するのが狙いだった
実際メインのマイコン処理だけでは追い付かずセンサ周りの処理は別チップのDSPを採用してる
結果的に制御系のコストは増加したが全体としては前システムの約7割程度の費用に抑えられた
長文失礼
この件は高価な材料(主にレアアース)を多量に使用したモーターを安価な代替品に置き換えて
同等の能力を発揮させるために高度な電子制御(いわゆるベクトル電流制御)で駆動するのが狙いだった
実際メインのマイコン処理だけでは追い付かずセンサ周りの処理は別チップのDSPを採用してる
結果的に制御系のコストは増加したが全体としては前システムの約7割程度の費用に抑えられた
長文失礼
638デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 17:22:17.10ID:pN9rkknD0 >>623も言ってることおかしいけど別回線か何かだろ
そもそも組み込みはその最悪ケースを見積もりながら設計していくって前提知識がないし
そもそも組み込みはその最悪ケースを見積もりながら設計していくって前提知識がないし
639デフォルトの名無しさん (ワッチョイ 8b63-Qpn1)
2023/03/09(木) 17:22:30.90ID:kE5o8bWH0 自動運転車での危険回避行動のロジックとか、聞けるのかと楽しみにしてたのに
640デフォルトの名無しさん (ワッチョイ 9168-zdzo)
2023/03/09(木) 17:34:00.29ID:mZ/OHyfS0641デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/09(木) 17:41:37.81ID:zXViYC6t0 ハード絡みの話が出るのは仕方ないだろ
COBOLじゃないんだから
COBOLじゃないんだから
642デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 17:50:21.11ID:pN9rkknD0 >>637
これを1行で要約するとヤバいなあ…設計見積もりガバガバで採用したマイコンで処理できなくてハード追加調達して結果的に動いたわろたってことだろ
最近のH3失敗もだけど予算まともでもこういう経験値の奴らで作られる可能性を考えると寒いなあ
暖ったけえ話を知りたい
これを1行で要約するとヤバいなあ…設計見積もりガバガバで採用したマイコンで処理できなくてハード追加調達して結果的に動いたわろたってことだろ
最近のH3失敗もだけど予算まともでもこういう経験値の奴らで作られる可能性を考えると寒いなあ
暖ったけえ話を知りたい
643デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/09(木) 17:54:10.14ID:zXViYC6t0 若いのに頭固いっていうのかな
他人の言うことを聞く耳持たず自分の思い込みを自画自賛してるよな
他人の言うことを聞く耳持たず自分の思い込みを自画自賛してるよな
644デフォルトの名無しさん (ワントンキン MMd3-WI/b)
2023/03/09(木) 18:26:27.17ID:Dl2bLbopM このスレの年齢層はとても高い
645デフォルトの名無しさん (ワッチョイ fbda-VwsU)
2023/03/09(木) 18:29:05.52ID:sK4pplDk0 精神年齢は?
646デフォルトの名無しさん (ワッチョイ fbda-VwsU)
2023/03/09(木) 18:33:49.17ID:sK4pplDk0 疑心暗鬼で個人攻撃
プログラムではなくてワッチョイを語る
世も末だな
プログラムではなくてワッチョイを語る
世も末だな
647デフォルトの名無しさん (ワッチョイ 1379-rvSK)
2023/03/09(木) 20:35:29.98ID:pN9rkknD0648デフォルトの名無しさん (ワッチョイ fbda-VwsU)
2023/03/09(木) 20:49:30.54ID:sK4pplDk0 組込みマイコンでは常識的なレジスタバンク切替やコンテキストスイッチングのことに触れずに
レジスタ退避や復帰でサイクル消費するとか言ってる時点で組込み開発の経験が無いんだろうな
ということは分かる
余程の簡易的なものを除けばメインと割込みでいちいちスタック経由でレジスタ退避するような
間抜けなマイコンは無いだろ
それはx86のような汎用CPUの構造だ
レジスタ退避や復帰でサイクル消費するとか言ってる時点で組込み開発の経験が無いんだろうな
ということは分かる
余程の簡易的なものを除けばメインと割込みでいちいちスタック経由でレジスタ退避するような
間抜けなマイコンは無いだろ
それはx86のような汎用CPUの構造だ
649デフォルトの名無しさん (ラクッペペ MMeb-UQad)
2023/03/09(木) 21:04:47.03ID:VZ2yRc9EM 似たような意見が出てきたので補足するとバンク切替なら大体2,3クロックでレジスタセット丸ごと切り替わるから割込みのオーバーヘッド自体は大した負荷にはならない
反面x86の様な大規模なレジスタ群は持てないのでそもそもの用途と構造が違う
反面x86の様な大規模なレジスタ群は持てないのでそもそもの用途と構造が違う
650デフォルトの名無しさん (ワッチョイ d163-PMd1)
2023/03/10(金) 06:51:36.78ID:wZRM+8gY0 ドヤってるけど大したこと言ってないな
651デフォルトの名無しさん (ワッチョイ fbda-VwsU)
2023/03/10(金) 07:19:22.02ID:gnQOQJYP0 そう言うなら後出しではなくて自分から大したこと語ってくれ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★2 [ぐれ★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★7 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… [BFU★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- 「高市人気」どこに? 自民候補が福島市長選で大敗、葛飾区議選でも苦戦 衆院早期解散論に冷や水 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- 日本行きの航空便が50万件キャンセル。日本人「中国依存度が異常に高かったからちょうどいい😏」 [441660812]
- 日本人、ついに気づく「あれ、日本が対中国で取れる対抗措置ってなくない…?」 [931948549]
- 中国「水産物輸入停止は高市首相の発言が理由」 [256556981]
- 中国「次に禁止してほしいものを教えて」 [358382861]
- 【号外】中国外務省、高市首相が台湾関連の発言を撤回しなければ「断固たる対抗措置」を取らざるを得ないと述べた [115996789]
- 【悲報】高市早苗『嫌ああああああああああああぁぁぁぁぁっーーッッ!!私が何したって言うのよぉぉぉぉーッッ!!』 [527893826]
