1 名前:デフォルトの名無しさん [2018/08/16(木) 23:36:02.22 ID:fOCSKLtw.net] C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ 前 C言語なら俺に聞け 146 https://mevius.5ch.net/test/read.cgi/tech/1525031257/
237 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:35:46.52 ID:4VjbPjMt.net] 親切に俺condwaitって書いたのに…
238 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:37:11.87 ID:ZsGoqTtC.net] 関数のレベル感あわせるのむずい あわないだろ
239 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:49:21.25 ID:OJr5a4rA.net] >>224 > do while は初回のチェックが入らない分速い。(逆に言えば、その分だけしか速くない) 違う、>>177 はコンパイラがあまり賢くない時代の知識で止まってるロートルってだけ
240 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:50:32.61 ID:/xlV6A++.net] 現在通過中 風はそれほどでも無いが雨量がヤバい、尋常じゃない
241 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:50:52.78 ID:/xlV6A++.net] 誤爆した
242 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:50:52.87 ID:wxGNRrqx.net] 「軽い場合がある」
243 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:52:49.79 ID:wxGNRrqx.net] デメリットは数文字ソースコードが増えるだけ 生成されるバイナリが悪くなることは無い 良くなる可能性はある
244 名前:デフォルトの名無しさん [2018/08/23(木) 22:54:11.95 ID:qYtPM3Ou.net] >>223 > それは正しく分割出来てないから。 そう。だから、>>113 は正しく分割できていない、という人がいると書いたんだが。
245 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:54:57.75 ID:wxGNRrqx.net] do while を使わない(使えない)人っているよね
246 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:57:34.92 ID:wxGNRrqx.net] 常に正しく分割されてるコードしかいじらないわけでも無いだろうし 常に正しく分割出来るとも限らないし 正しいか正しくないかは視点によっても違う 理想だけ語るだけで実際にコードを組んだ事が無さそうな人がいるようだけど
247 名前:デフォルトの名無しさん [2018/08/23(木) 23:01:12.83 ID:FIun2PeI.net] >>237 気圧申告しないと!
248 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:01:58.95 ID:wCnARv+4.net] ワッチョイないのに結局レスするんか
249 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:03:30.31 ID:NMfUyUL+.net] >>230 >FizzBuzzはイテレートするクラス、判定クラス、表示クラスに分割され、イテレータがインタフェースとして活用される、というのが件の悪ノリだった どんなコードになるのでしょうか?一度みてみたいものです… fizzbuzz はこんなコードを書いたことがあります https://mevius.5ch.net/test/read.cgi/tech/1434079972/25 https://ideone.com/i8wMea
250 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:18:47.64 ID:y9Wx8uZn.net] >>226 具体例あるか? それ以前に「成功するまでリトライ」自体がよろしくないが。 >>236 do-whileに対して何か特殊な最適化がかかるという話なら、 俺は知らんから突っ込めない。 が、そうだとしても、それでコードを汚すこと自体が間違いだが。 >>241 そう思うんならそれでいい。 平行線だし、議論しても結果は出ない。 君のコードを見て他の人がどう思うかはそれぞれの自由だ。 俺はこの場合関数に括り出す方を選択する。 同様の連中もここにいるだろ。それだけの話さ。 ただそれ以前に、アトミックなんて最初から関数に括り出されていると思うが。 インラインアセンブラを使う気でなければそもそも無理だし。例えば、以下。 https://msdn.microsoft.com/ja-jp/library/dd78zt0c(v=vs.110).aspx >>245 あー、8は俺だ。 ワッチョイありで立て直してくれればそっち行くわ。 (俺が立て直してもいいが)
251 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:43:58.22 ID:y9Wx8uZn.net] >>246 俺の記憶では、「FizzBuzz Implementation in Java」みたいなタイトルでGitHubに在ったはず。(だが出てこない) ★も2000位ついていたと思った。 クレームついて取り下げるとも思えないから、検索順位下げられたんじゃね? そんなに見たければ自分で探せよ。多分まだそのまま公開してると思うぜ。
252 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:45:37.65 ID:Ml8TmHvL.net] 1000行書けるお題を教えてください
253 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:49:35.97 ID:HinwMmX/.net] 宿題で出されているの?
254 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:52:07.74 ID:NMfUyUL+.net] >>248 キーワードありがとうございます これですね https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
255 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:55:52.97 ID:0/a4zf/K.net] >>249 RPGゲーム これは26万行 ttps://github.com/naota/hengband/tree/master/src
256 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:59:12.07 ID:y9Wx8uZn.net] >>251 それだ。 (俺のキーワードが役に立ったようには見えないが…まあ辿り着けたようだしよしとしよう)
257 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:05:09.13 ID:iMeaBiRp.net] >>247 > ただそれ以前に、アトミックなんて最初から関数に括り出されていると思うが。 そうだな。すでに atomic 実装されていたら俺も使うわ。 関わっているプロジェクトや文化にも依存するから、絶対はない。 例えば Kernel とかだと大半は関数化していない。俺は見た記憶がない。 まあそれだけの話。
258 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:16:45.53 ID:O3WQJa8X.net] >>254 > 例えば Kernel とかだと大半は関数化していない。俺は見た記憶がない。 それソース出せるか?さすがに嘘だと思うぜ。 > C 言語ではアトミック操作を保証できないことから、Linux は基礎となるアーキテクチャーに依存してアトミック操作を提供します。 > https://www.ibm.com/developerworks/jp/linux/library/l-linux-synchronization.html いちいちインラインアセンブラでは設計効率が悪すぎる。 APIにも当然用意されてるし、普通の人ならそれを使うし、Linusも当然そうだと思うけど。 根本的に「ロック」自体を勘違いしている気がするが。
259 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:18:45.88 ID:iMeaBiRp.net] >>255 俺は見たことがないだけ。気になったら探してくれ。
260 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:34:08.73 ID:O3WQJa8X.net] >>256 grepすれば出てきそうだが探す気はない。 linux kernel内でひたすらインラインされているとしたら、 おそらくスタック容量(1スレ当たり256バイトだったか?)の為だろう。 「関数化」はされていなくても「マクロ化」されていて、 ソースコード的には意味が同じという落ちじゃないか? それなら君の噛みつき方は悪質だと思うがね。(意図的に議論を空回りさせててる)
261 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:37:30.88 ID:iMeaBiRp.net] >>257 わざわざ自前で関数化していない、という話だぞ。
262 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:43:06.32 ID:O3WQJa8X.net] >>258 それが論点のすり替えなんだよ。 分かってないようだからそれでいいが。 というわけでこの件は終わりだ。
263 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:44:16.19 ID:iMeaBiRp.net] >>259 >>113 が自前で関数化する意図でしか読み取れないからな。 あれが自前実装でないというのであれば、それまでだ。
264 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:49:47.27 ID:VJLc5wt0.net] ソースを示して、突っ込んだ話になることを期待w
265 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:53:41.22 ID:ljcg8c0k.net] wktk
266 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 00:53:57.99 ID:TjDOkMEc.net] そしてまた質問者が置き去りになるのであった
267 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 01:26:32.42 ID:VJLc5wt0.net] C言語なら俺に聞け(答えるとは言っていない)ですか?
268 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 01:28:36.02 ID:A5L5xSI8.net] >>253 「github にある」が重要なヒントとなりました
269 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 05:28:07.79 ID:Nyovr5Qp.net] >>242 > do while を使わない(使えない)人っているよね このスレでも>>161 とかな while(){}に比べたら使用頻度は低いけど使用する機会があるから多くの言語で使えるようになってるのになぜかdo〜while使わない俺かっけーとか思ってそうw ただ今どきパフォーマンスがいいからdo〜whileにすると言うのはナンセンス
270 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 05:50:10.13 ID:Nyovr5Qp.net] >>247 > 俺は知らんから突っ込めない。 知らないなら突っ込むなよ… > do while は初回のチェックが入らない分速い。(逆に言えば、その分だけしか速くない) とか馬鹿丸出しだぞ
271 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 05:54:34.00 ID:Nyovr5Qp.net] >>255 あん
272 名前:たの言ってるアトミック操作が>>107 のLOCK/UNLOCKに相当する わざとなのか理解してないのかは知らんけどレイヤーの違うものを混ぜて語られてもそりゃ噛み合わんよw [] [ここ壊れてます]
273 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 07:43:07.97 ID:ZkSPfVdV.net] >>247 コードを汚す? do whileに慣れてないと 無限ループでdo whileを使うのがコードを汚す になるのか?
274 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 07:52:13.74 ID:ZkSPfVdV.net] >>266 > ただ今どきパフォーマンスがいいからdo〜whileにすると言うのはナンセンス forやwhileを選ぶ理由がある所でも パフォーマンスを気にしてdo whileを選ぶべき なんて話はしていない どれを選んでも良いときに forを選ぶ人、whileを選ぶ人、do whileを選ぶ人がいると言うだけ
275 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 07:57:40.75 ID:ZkSPfVdV.net] わざわざCを使うってことは 8bitのチープなマイコン、チープなコンパイラだったり OSやドライバの開発だったり アセンブラも混ぜて使うこともありそうな 一番低級な高級言語 他の言語よりも記述方法によるパフォーマンスの差 が語られても良いと思う
276 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 07:58:09.19 ID:KrjEv78J.net] 自己防衛のためだけのレスになってきたな そろそろこの話題も終わりかな
277 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:00:01.51 ID:Hnd+Ihtp.net] ソース見て do {...} while (1); で無限ループになってたら さすがに「なんで for (;;) や while (1) にせんの?」と尋ねるわ。 …でも「ループ先頭の(決して成立しない)終了判定が入らないから速いんだ」 と言われたら受け入れるかも。分かってやってるんだな、という意味で。 実際のところ for (;;) は無論のこと while (1) でも判定しないと思うけど。
278 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:06:02.46 ID:ZkSPfVdV.net] >>273 3個とも超基本構文だと思うけど そのレベルだと 「なんでfor(;;)なの?」って聞く人もいそうだな
279 名前:デフォルトの名無しさん [2018/08/24(金) 08:10:04.46 ID:29l6jjMs.net] そういやループの話でgoto使うってレスないな ネストが浅くなるし好んで使う人は・・・さすがに居ないか
280 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:12:56.91 ID:LUWnMn3S.net] 無限ループって怖くね?
281 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:14:01.23 ID:LUWnMn3S.net] >>274 K&R以来の伝統のCのイディオムだから?
282 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:16:04.10 ID:ZkSPfVdV.net] goto label2 label1: 処理 label2: 条件判断 if (偽) goto label 1; ---- コンパイル結果的にはforやwhileはこんな感じ 条件が無かったとしても goto label2が入る 最適化しない場合やチープなコンパイラだと このまま最適化されないかもしれない goto label2 が不要な時にこれを除いたのがdo while これのほうがバイナリはシンプル
283 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:18:32.35 ID:ZkSPfVdV.net] >>175 多重ループから抜ける時 関数の終了処理 ガシガシに最適化をする時 使いどころはこんな感じ
284 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:18:56.33 ID:ZkSPfVdV.net] アンカーミス >>275 でした
285 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:30:42.38 ID:ZkSPfVdV.net] gotoを使わない(使えない)人だと 多重ループから抜ける為だけにフラグを使ったり 多重ループから抜ける目的の為だけの理由で 関連する複数のループを分けたりする double data[4][4]; 例えばこんな構造のデータのある統計情報を返す関数 ただし、データに非有限値が入っていたらNaNを返す デバッグ用に計算結果を出力するコードが入っている どういうコードにする?
286 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 08:42:44.31 ID:srP6ovAZ.net] >>270 > どれを選んでも良いときに 無限ループ以外にそんなケースあるか? かつそれでdo〜whileの方が効率的になるケース示してみ
287 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 09:30:50.97 ID:L5DguHRe.net] マウント取りたくて必死w
288 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 10:27:50.33 ID:tx++RsbT.net] do…whileの方が初回の判定がないから速いとしてもループ回数が多いと誤差レベルだし無限ループならコンパイラで最適化されて差がなくなると思う
289 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 10:54:27.69 ID:ZlD+iWMs.net] 4.3BSDのccを-Oなしで使った場合の話をまだしてるやついるのか
290 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 11:04:28.35 ID:Cl8BSI3h.net] いろいろ誤解が多いので口出ししておく。 アセンブリ言語に手で変換してみるとすぐわかるんだが、 whileは先頭付近に条件分岐が必要な他に、末尾に必ず無条件のジャンプが必要。 対してdo-whileは末尾の条件分岐だけでいい。 このおかげでループ1回あたり命令実行が一つ減る。 しかしコンパイラはwhile文をif文とdo-while文相当に置き換えて最適化するから、差は出ない。 ヘボコンパイラなら最適化しないかもしれないが、 その場合は他の部分も最適化されるはずもないので、速度云々いうだけ無駄。
291 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 11:18:54.46 ID:ZlD+iWMs.net] そんな誤解しかねないやつ いるとしたらおまえだけ
292 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 11:36:54.26 ID:/2nrSUYs.net] do whileは最後に条件を書くのが気に入らないので使わないです
293 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 11:38:27.58 ID:C22mUEBr.net] 環境に依る 以上
294 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 11:40:55.91 ID:7MrYBE0R.net] 使いどころを知らない自慢 forはwhileの上位互換だからwhileを使わない ていうならまだわかる
295 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 11:44:59.31 ID:7MrYBE0R.net] >>282 1回目が必ず条件TRUEになることがわかっているwhileループ全て 話題は無限ループだけど
296 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:22:55.87 ID:srP6ovAZ.net] >>286 > しかしコンパイラはwhile文をif文とdo-while文相当に置き換えて最適化するから、差は出ない。 if文? do 〜whileに置き換えて単に最後の条件文に飛ぶジャンプ命令入れるだけだぞ
297 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:29:41.83 ID:9+ua1c/R.net] アセンブラのジャンプ命令や条件分岐の使い方が分かってない様子だね ループ全体で命令が1回増えるだけなのにループ1回当たりの命令実行回数が増えるとか言ってるし
298 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:30:27.52 ID:7MrYBE0R.net] ----gotoの使用例---- for (y = 0; y < 9; y++){ . . for (x = 0; x < 9; x++){ . . . . if (判定) goto break_loop; . . . . 処理 . . } } break_loop: ----do whileの使用例---- if (FindFirst()){ . . do { . . . . 処理 . . } while (FindNext()); }
299 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:31:56.80 ID:srP6ovAZ.net] >>291 > 1回目が必ず条件TRUEになることがわかっているwhileループ全て それ1回目は必ず実行してその結果で2回目以降を実行するかどうかを決めるってことだよね? 典型的なdo〜whileパターン w むしろそのパターンでwhile(){}使ってるなら単なるアホとしか思えない
300 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:34:47.80 ID:7MrYBE0R.net] >>295 >>294 の上のようなループを書くことない? この場合はforだけど
301 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:35:02.93 ID:srP6ovAZ.net] >>293 昔の話をしてるなら>>286 の前半読め 今の話をしてるならそんなことみんなわかってるからいちいちドヤるな
302 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:38:53.07 ID:srP6ovAZ.net] >>296 それは実行結果でループ制御してるわけじゃないだろ x, y の値はループに入る時には条件満たしているべきだからdo〜whileなんて使っちゃダメ
303 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:39:50.18 ID:TJU8554I.net] do whileってそんな語ることあるの?良くも悪くも単なる構文だと思うけど ダラダラと長いループだと継続条件が下方に隠れるので嫌ってのはある それ以外は正直どうでも良い
304 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:40:30.21 ID:7MrYBE0R.net] >>297 今とか昔とかじゃなくて... PCのプログラムしかしたことが無い人は分からないだろうけど 組み込みのチープなマイコンのコンパイラは いまだに糞なのはたくさんあるよ あと、 様々な事情により最適化をOFFにして出荷する事もある
305 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:40:57.41 ID:7MrYBE0R.net] >>298 その条件、何か関係ある?
306 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:42:26.92 ID:7MrYBE0R.net] >>299 単なる構文を無条件で悪とする人がいるって話
307 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:53:42.33 ID:90B7//Ue.net] みんな議論に夢中で楽しそう w
308 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 13:07:51.92 ID:sQPXKPEp.net] >>299 gotoも単なる構文だしね あるものは便利に使っていこう
309 名前:デフォルトの名無しさん [2018/08/24(金) 13:32:55.56 ID:Dz3bxc41.net] https://twitter.com/kondo_orange/status/1032690721822633985 俺は毒舌だから〜、ズバッと切れ味鋭いことも言っちゃうよ〜w、みたいな人、その意見が的を射ていない場合マジでイタイ奴だから気をつけろよ。 勘違いしてる奴けっこういるぞ。 斜に構えて逆張りするならそれなりに思考深めて来ないと。 田端さんとか意見が的外れだったらただのイヤな人だ(笑) https://twitter.com/5chan_nel (5ch newer account)
310 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 13:41:35.51 ID:B0ktSP35.net] 構造体はメモリのスタックとヒープのどちらに格納されるのでしょうか?
311 名前:デフォルトの名無しさん [2018/08/24(金) 13:53:06.07 ID:MEArwTdw.net] >>306 書き方次第でどちらにもなりうる。 ポインタ変数作って自分で malloc() 等で初期化すればヒープになる。 関数の中で stastc 付けたり関数外で宣言すると data や bss 領域になると思う。 関数内で static 付けずに自動変数として宣言すれば多分スタックになる。 しかし、必ずそのようなコードを作るコンパイラにしなければならないという決まりはない。
312 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:55:09.53 ID:MmiOMKcQ.net] 「C言語」の名前の由来はB言語の後継だからというのは有名だけど、B言語って何でB言語?A言語はないのに。
313 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:04:10.98 ID:YufcJqyf.net] BCPLが元だからB
314 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:05:27.92 ID:MmiOMKcQ.net] >>309 BCPLってどんなん? PL/Iなら知ってるけど。
315 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:15:25.56 ID:ZlD+iWMs.net] >>310 世話のやける子やなあ https://ja.wikipedia.org/wiki/BCPL
316 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:15:27.99 ID:sQPXKPEp.net] >>310 CPLの簡単版
317 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:15:41.51 ID:C/3CctmU.net] BCPLの元となったのはCPL 経緯は、CPL→BCPL→B言語→C言語 https://ja.wikipedia.org/wiki/CPL_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)
318 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:31:50.43 ID:MmiOMKcQ.net] へー、BLCLってぱっと見Fortranぽいね。 時代を感じるわ。 C言語みたいにnotationが基本lowercaseになったのって画期的だったのかもね
319 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:41:34.02 ID:C/3CctmU.net] つ EBCDIC
320 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:51:17.23 ID:srP6ovAZ.net] >>300 だからそういう話なら > 昔の話をしてるなら>>286 の前半読め って書いてあるだろ 応用力ないのかよ w
321 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:51:17.53 ID:MmiOMKcQ.net] うちの会社って、まだHungarian notationを強制しようとする人がいるんだけど、make excessiveせずに説得するにはどうしたら良いでしょうか?
322 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 17:53:50.92 ID:srP6ovAZ.net] >>301 あんたにはないのかもね 別に全てに人に同意してもらおうとは思ってない 色々おかしい人はいくらでもいるし
323 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:14:41.54 ID:ZkSPfVdV.net] >>316 昔話じゃないって言ってるの そもそも>>286 が間違ってる
324 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 18:40:16.19 ID:1mvArulW.net] >>319 どこが?
325 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 1
] [ここ壊れてます]
326 名前:9:11:10.10 ID:s18ZTF9u.net mailto: >>317 なんだよその不自然な英語混じり文は なんか変わり者っぽいな [] [ここ壊れてます]
327 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:16:16.69 ID:C/3CctmU.net] >>320 これだろ >whileは先頭付近に条件分岐が必要な他に、末尾に必ず無条件のジャンプが必要。 whileの処理構造ならループ開始直後に条件判定の個所に(1度だけ)無条件ジャンプしてしまえば、あとは条件分岐を繰り返すだけで無条件ジャンプを再び使うことはない ぶっちゃけ条件判定が先頭付近にあろうが末尾にあろうが何処でもいい (do-whileの構造だと必ず一度は処理を実行する必要があるのでそんなことは出来ないけど)
328 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:23:07.44 ID:YufcJqyf.net] 先頭のほうがええやろ
329 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:28:22.47 ID:MmiOMKcQ.net] >>321 日本人なんだけど日本育ちじゃないのでニュアンスをどう伝えたら良いのか分からないのですみません
330 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:30:09.95 ID:1mvArulW.net] >>322 それがdo-while構造に最適化してるってことでは?
331 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:37:04.31 ID:C/3CctmU.net] >>323 C言語のソースと直接対応させるならそのほうがその方が素直といえば素直だけどね 条件分岐命令はジャンプ範囲に制限があることがある(-128〜+127byte程度)ので下手すれば多段ジャンプを強いられることがある アセンブラレベルでギリギリの調整をするときはループ構造が制約されることもあるよ
332 名前:デフォルトの名無しさん [2018/08/24(金) 19:50:21.18 ID:rXR3rzpw.net] 条件分岐で飛び先を相対で1バイトで指定しなければならないがそれ以上飛ばしたいなら逆の条件で無条件ジャンプによるループを抜けるようにすれば良いだけでは?
333 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:52:23.26 ID:s18ZTF9u.net] >>324 マジかよ
334 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:59:34.12 ID:ZkSPfVdV.net] >>320 >>278 わざわざ普通のコンパイラの結果を書いてあげてるのに
335 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 19:59:55.12 ID:C/3CctmU.net] >>327 その方が適切な場合であればそうする 結局のところコンパイラの吐き出したバイナリをアセンブラでチューニングするような状況だと少しでも所要クロックが少なく命令バイト長が短くなるようにロジックを弄るんだよ
336 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:05:00.35 ID:s18ZTF9u.net] ぼくのコードを評価してください https://ideone.com/YEOWVY
337 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 20:11:20.96 ID:ZkSPfVdV.net] >>331 趣味の押し付け合いを望んでる?