[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/12 01:51 / Filesize : 317 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 147



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/

446 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:09:42.60 ID:E22oAZjP.net]
>>396
あればなるべく外部ライブラリを使う
十分に使われてるなら自作よりそっちのほうがいい

447 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:10:54.85 ID:yggGxXGy.net]
>>439
大差でおれに3連敗したアホ
4連敗確定にされたいか?

448 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:20:36.81 ID:yggGxXGy.net]
15GBのテキストデータの解析速度
4倍の差

複数の数値データから上位3個を選ぶアルゴリズム
高速、非破壊、安定 / 低速、破壊、不安定

フィボナッチ数列の計算
計算式、計算アルゴリズム、コードいずれも大差

449 名前:デフォルトの名無しさん [2018/08/25(土) 14:21:26.04 ID:0r5h6/lL.net]
まさに阿Q正伝

450 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:32:32.93 ID:yggGxXGy.net]
>>439の恥ずかしい書き込み

795 :デフォルトの名無しさん (ワッチョイ cf80-gYkF) [] :2018/08/06(月) 23:39:21.68 ID:9v3Lf9b90
全然ずれてない
コールスタックの深さとぴったり一致してる

オツムが足りない知恵遅れのために
さらにムダな補助出力をつけてやったぞ(AとB)

 https://ideone.com/2vP2kN

ここまでくると
メクラやツンボを誘導するのに近い。。。

 ↓この課題は、最終的には、コレにおちつくことになる
  (なんでかは、nを増やせばきっと知恵遅れでも分かるとは思ってたからな)
 https://ideone.com/eaJEjX

補助出力がないとなにやってるのかすら分からないメクラやツンボでは
コレがなにやってるかもきっと理解できないわ
u_l、u_r、u_yしかないからな

知恵遅れは再帰が理解できてないのが、よおく分かったわ


451 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:33:32.61 ID:yggGxXGy.net]
882 :デフォルトの名無しさん (ワッチョイ de80-oNxq) [] :2018/08/11(土) 19:44:24.09 ID:17qcRus/0
で、>>881の結果に基づいて
一般項で処理するコードを書いた

 https://ideone.com/QKTrLi
 一般項で処理

やってみたが
一般項で処理なんかするとともかく遅い

6,942,482 bitsの一般項の計算で
お話にならないぐらいものすごい時間がかかる

calculation 6942482bits
f,10000000,35.082393,34.855636
g,10000000,0.722054,0.720584

つまり、結論としてフィボナッチ数を求めるなら
GMPに用意されてる関数を使うのが一番

再帰階乗演算使う方がはるかにマシ
一般項で求めるのはウンコ

452 名前:デフォルトの名無しさん [2018/08/25(土) 14:35:05.39 ID:0r5h6/lL.net]
なんか低学歴知恵遅れが
意味不明なこと書いてるわ

453 名前:デフォルトの名無しさん [2018/08/25(土) 14:35:56.77 ID:0r5h6/lL.net]
なんかしらんけど
よほど悔しいらしい

低学歴知恵遅れは
自己評価だけは高いからな

454 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:37:01.56 ID:95iULeOH.net]
また半角くんが暴れてんのか・・



455 名前:デフォルトの名無しさん [2018/08/25(土) 14:39:15.70 ID:0r5h6/lL.net]
まず基本的なことが分かってないからな
致命的

456 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:39:54.36 ID:XpRMjBtL.net]
最後に本当に共通ライブラリより高速なロジックがはられてたが
それに対する彼のコメント

// アホが書いたコード
// なにをやってるかは不明

457 名前:デフォルトの名無しさん [2018/08/25(土) 14:43:19.36 ID:0r5h6/lL.net]
オレはちゃんと
アホがスレで書いたコードをwebコンパイラで動かしたからな

458 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:45:50.69 ID:yggGxXGy.net]
で?

459 名前:デフォルトの名無しさん [2018/08/25(土) 14:46:13.55 ID:0r5h6/lL.net]
で、正しい結果になった?

460 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:49:17.98 ID:XpRMjBtL.net]
ビット数がWebだと32なのでそこで矛盾があっただけだった
ちゃんと作って張りなおされたやつは数千桁あっという間に求めるやつだったぞ
みただろ?

461 名前:デフォルトの名無しさん [2018/08/25(土) 14:50:29.77 ID:0r5h6/lL.net]
オレはしっかり低学歴知恵遅れが相当に頭悪いことを
しっかり 実 証 してるからな

462 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:51:46.41 ID:yggGxXGy.net]
半角君が劣化コピーして

if (32bit変数 & 0x8000000000000000)
がTRUEにならんとか騒いでたね

463 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:53:18.47 ID:XpRMjBtL.net]
あれ劣化コピーだったんかいw
最悪だな

464 名前:デフォルトの名無しさん [2018/08/25(土) 14:53:24.24 ID:0r5h6/lL.net]
1~64まで足して
まず0x8000000000000000
になるとかないからな

ぱっと見で分かるレベルだからな
相当な知恵遅れでなければな



465 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:53:37.08 ID:yggGxXGy.net]
>>455
低学歴知恵遅れに大差で3連敗するって
どんな気持ち?

466 名前:デフォルトの名無しさん [2018/08/25(土) 14:55:14.91 ID:0r5h6/lL.net]
かわいそうに
精神的勝利か

低学歴知恵遅れのゴミクズ人間が
まともな人間に勝てるワケがないからな

467 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:56:30.95 ID:yggGxXGy.net]
>>458
n += n;

まだこんな簡単なコードを理解してないとは思わなかった
説明もしたのに

これが1から64まで足すコードに見えるってヤバくないか?

468 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:56:39.44 ID:y6eIypE7.net]
あのカウントは統治分割の管理用じゃなかったっけ?

469 名前:デフォルトの名無しさん [2018/08/25(土) 14:57:17.04 ID:0r5h6/lL.net]
で、実行結果みた?

470 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:57:45.75 ID:yggGxXGy.net]
単に順番にビットを端からスキャンしてるだけ

471 名前:デフォルトの名無しさん [2018/08/25(土) 14:58:36.91 ID:0r5h6/lL.net]
n = 0 (z)0 (f)0 (m)0 (aho)1
n = 1 (z)1 (f)1 (m)1 (aho)1
n = 2 (z)1 (f)1 (m)1 (aho)1
n = 3 (z)2 (f)2 (m)2 (aho)1
n = 4 (z)3 (f)3 (m)3 (aho)1
n = 5 (z)5 (f)5 (m)5 (aho)1
n = 6 (z)8 (f)8 (m)8 (aho)1
n = 7 (z)13 (f)13 (m)13 (aho)1
n = 8 (z)21 (f)21 (m)21 (aho)1
n = 9 (z)34 (f)34 (m)34 (aho)1
n = 10 (z)55 (f)55 (m)55 (aho)1
n = 11 (z)89 (f)89 (m)89 (aho)1
n = 12 (z)144 (f)144 (m)144 (aho)1
n = 13 (z)233 (f)233 (m)233 (aho)1
n = 14 (z)377 (f)377 (m)377 (aho)1
n = 15 (z)610 (f)610 (m)610 (aho)1
n = 16 (z)987 (f)987 (m)987 (aho)1

64bitとか以前の問題だからな

472 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 14:59:30.35 ID:yggGxXGy.net]
お前が劣化コピーしたのがahoの欄

473 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:00:08.15 ID:XpRMjBtL.net]
64ビットのとこ直したうえでその結果?

474 名前:デフォルトの名無しさん [2018/08/25(土) 15:00:50.04 ID:0r5h6/lL.net]
知恵遅れの脳内では987がunsigned intでオーバーフローする



475 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:00:55.69 ID:yggGxXGy.net]
https://ideone.com/hklTK1

476 名前:デフォルトの名無しさん [2018/08/25(土) 15:01:52.08 ID:0r5h6/lL.net]
当然
https://ideone.com/vhpLPV
851 名前:デフォルトの名無しさん (ワッチョイ 0b50-2km2)[sage] 投稿日:2018年08月11日(土) 00時06分54秒68 [深夜] ID:N9ICkOCi0 [1/10] (PC)
10000進数多倍長
超単純なFFT
演算は乗算と加算のみ
誤差の感じから100000進数でも大丈夫そうですね

計算式は基本以下を多倍長にしただけ
多少の無駄は除いてますが

----
uint64_t f(uint64_t n){
n++;
uint64_t a = 1;
uint64_t b = 0;
uint64_t t;
for (int i = 0 ; i < 64 ; i++){
t = b * b;
b = 2 * a * b + t;
a = a * a + t;
if (n & 0x8000000000000000){
t = b;
b = a + b;
a = t;
}
n += n;
}
return a

477 名前:;
}
[]
[ここ壊れてます]

478 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:02:52.94 ID:yggGxXGy.net]
https://ideone.com/4a3zE8
32bit対応版

>>469は64bit環境だと正しく動きます

正しく動かないのは半角君が劣化コピーしたコード

479 名前:デフォルトの名無しさん [2018/08/25(土) 15:03:38.02 ID:0r5h6/lL.net]
知恵遅れがどっかからコピってきたコードはってるわ

480 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:04:01.61 ID:yggGxXGy.net]
>>470は正しく動きますよ

481 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:04:45.01 ID:5ar3I1wr.net]
半角はいつも負けてるな

482 名前:デフォルトの名無しさん [2018/08/25(土) 15:04:48.85 ID:0r5h6/lL.net]
コレが低学歴知恵遅れが低学歴知恵遅れであることの 実 証 も含めた
エレガントなレス

866 自分:デフォルトの名無しさん (ワッチョイ de80-oNxq)[] 投稿日:2018年08月11日(土) 11時39分50秒69 [朝] ID:17qcRus/0 [1/7] (PC)
とりあえずかわいそうなぐらい頭悪いヤツしかいないのは分かった

一旦、多倍長演算向けに3つの方法を評価する
ちなみにgmpの関数にフィボナッチの関数がついてる
きっとこの速度にすら届かないと考えられる(まだ動かしてない)

↓多倍長演算使ってない3つの方法の簡単なコードがコレ
https://ideone.com/vhpLPV
※ オマケでアホが書いたコード(>>851)も入ってる
※ オレの適切なありがたい注釈がついてる

1.ひたすら足し算

2.一般項
 多倍長演算をするまえに適切な精度を設定しないといけない
 どれぐらいの精度にすればいいかがまだ未解決 ※ とりあえず2回計算することでいけるような気がしないでもない

3.再帰階乗演算
 https://www.ics.uci.edu/~eppstein/161/960109.html
 探した中でコイツが一番いい感じがする
 > This is a recursive algorithm, so as usual we get a recurrence relation defining time,
 > just by writing down the time spent in a call to matpow (O(1)) plus the time in each recursive call
 > (only one recursive call, with argument n/2). So the recurrence is
 > time(n) = O(1) + time(n / 2)

483 名前:デフォルトの名無しさん [2018/08/25(土) 15:05:25.56 ID:0r5h6/lL.net]
webコンパイラで動かしてみ
まちがいなく動かない

484 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:05:34.74 ID:yggGxXGy.net]
>>470のリンク先は勝手に半角君が変数を32bitに変えちゃったんで動かないだけ

>>470に直接書いてあるコードはそのままで正しく動く



485 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:10:38.17 ID:XpRMjBtL.net]
劣化コピーっていうか
わざわざ書き換えてるじゃねーか!

釣りだった

486 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:13:33.29 ID:XpRMjBtL.net]
…ほかがunsigned intだから関数名変えるついでに一緒に変えちゃったのか
これは訴訟レベル

487 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 15:49:42.93 ID:RtKY5+V3.net]
>>474
サマータイムのスレとかでも一人空回りしている。
いや、時々変なのも絡まって巻き込んで空回りしてるか。

488 名前:デフォルトの名無しさん [2018/08/25(土) 15:58:16.40 ID:R/mHQH6/.net]
>>396
俺の場合はCを使ってMapみたいなものまで使わねばならないほど膨大なデータを扱うことが
滅多にないのでだいたいは不要。数百から数千のデータのキーでの検索なんか何も考えずに
ループさせて全検索してしまう。億単位のデータの処理が必要な場合は(だいたいはCではない
言語を使って)RDBにデータを入れてやるかな。その方が楽だから。

ああ、でも、昔 dbm ライブラリとか使ったことあるなあ。半端に多い場合はそういうので良いかも。
今だと Linux ディストリビューションとかは最初から gdbm ライブラリ入ってるの多いと思う。これね。
https://linuxjm.osdn.jp/html/GNU_gdbm/man3/gdbm.3.html

489 名前:デフォルトの名無しさん [2018/08/25(土) 16:25:32.56 ID:R/mHQH6/.net]
>>413
> if文の中を抜けたい場合ってどうすればいいですか?

抜けようとしなくても抜けるので何もする必要はない。

490 名前:デフォルトの名無しさん [2018/08/25(土) 17:08:52.03 ID:kfh++Yrt.net]
半角くん、逃亡www

491 名前: mailto:sage [2018/08/25(土) 17:45:22.21 ID:3TjQPkhu.net]
半角さんは、巷にあふれるただのマウント野郎とは違って、きちんとソースを出している
唯の者ではないと思います

492 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 17:46:03.47 ID:zd32/hlD.net]
コード保守でのバグはこうやって生まれる
うっかりミスの見事な事例がまさかこのスレで見られるとは思ってなかった

493 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 18:00:04.35 ID:yggGxXGy.net]
>>484
コードを出しゃ良いってもんじゃない
自分の劣化コピーのせいで動かないコードに対して
今回だけでもこれだけ書いてるから

>>451,458,465,468,470,472,476

494 名前:デフォルトの名無しさん [2018/08/25(土) 18:02:07.86 ID:0r5h6/lL.net]
2ちゃんねるでしか自己主張できない低学歴知恵遅れが
なんか必死になってるわ

わかりやすいわ
ホント



495 名前:デフォルトの名無しさん [2018/08/25(土) 18:03:03.76 ID:0r5h6/lL.net]
つまりクソニートと
断定できる

496 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 18:06:11.05 ID:yggGxXGy.net]
>>442の1個目3個目は相手が悪かっただけ
としても
2個目は初心者用の課題に対して
初心者が普通に考えるよりはるかに悪いアルゴリズムを選んでおいて
「これを選ばないヤツは知恵遅れ」発言の連投だから

1個目も3個目も言ってることはコロコロ変わるし
「こうしないヤツはアホ」発言をして
自分で変えてるし

>>432も頭おかしいだろ

497 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 18:13:06.50 ID:zd32/hlD.net]
働いてはいないがニートと呼べるほど若くもない
早期退職で悠々自適生活の元組込みソフト開発者だよ

498 名前:デフォルトの名無しさん [2018/08/25(土) 19:03:57.78 ID:kfh++Yrt.net]
半角くんと長文くんのバトルを見てみたい

499 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:15:27.06 ID:06VRwQlu.net]
是非別スレでやって欲しい
スレ数はいくら使っても良いから

500 名前:デフォルトの名無しさん [2018/08/25(土) 19:18:01.37 ID:0r5h6/lL.net]
オマエなかなか分かってるわ
オレのレスも文字列的には長い
しかし、中身が濃いから、情報価値も高い
つまり価値が高い情報を継続して提供している

クソニートの長文は情報価値ゼロ
中身スカスカ
ただの落書き

501 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:20:58.01 ID:sh4ZcDkv.net]
>>493
フリがなかなか分かりにくいんだけど、そこ笑うとこ?

502 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:23:40.50 ID:06VRwQlu.net]
>>494
失笑なら

503 名前:デフォルトの名無しさん [2018/08/25(土) 19:25:27.77 ID:0r5h6/lL.net]
オレに敗北はない
このスレのクソニートにも敗北はない

ただコレには違いがある

オレは正面から戦う

クソニートは戦わない
コイツラは身をひそめながら遠くからとりあえず石投げる

この違い

504 名前:デフォルトの名無しさん mailto:sage [2018/08/25(土) 19:28:15.91 ID:sh4ZcDkv.net]
>>496
ああ、ごめん。
一生懸命ネタ振ってたのね。でもネタフリにしてはあんまり面白くはないかな。
ただ俺はそんな一生懸命なお前嫌いじゃない(笑)



505 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 02:50:43.41 ID:5Jlr+RDR.net]
一日でこの板に少なくとも 23 回「低学歴知恵遅れ」って書いてるね。
どれだけ拗らせてるの?

506 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 03:24:56.95 ID:BwlGzYMc.net]
23/35=65.7%
うぷぷぷ

507 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 09:18:36.35 ID:aDjvXB/e.net]
職場で言われていることをここで

508 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 11:23:23.80 ID:0Dyu3Dip.net]
いやぁ、今どき職場で「低学歴知恵遅れ」なんて言ってくる上司がいたら
ネット掲示板で同じセリフを繰り返すより、録音して訴えるだろ。

それにしても、まるで署名のように必ず投稿文に盛り込むから、
何か隠された意図があるのでは、と深読みしてしまうのも事実。
単にクセになってて本人には意味の薄い間投詞になってるのかも知れんけど。


…読み取れないとガッカリなので一応書いておくけど、
「いくら匿名の電子掲示板でもそういう言葉遣いは良くないよ」と
たしなめている(忠告している、の方が受け入れやすいかな)つもり。

509 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 11:27:57.33 ID:aDjvXB/e.net]
それが当たっていると、訴えるのも恥ずかしいような

510 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 12:44:59.10 ID:d3emHXQQ.net]
>>501
純粋かよ

511 名前:デフォルトの名無しさん [2018/08/26(日) 14:53:35.15 ID:hANAm2gW.net]
低学歴底辺のクソニート、そして底辺ドカタなのは
図星なんでしょ

人間をホントのこといわれると
必死になる

512 名前:デフォルトの名無しさん [2018/08/26(日) 14:56:43.12 ID:hANAm2gW.net]
残念なことに
低学歴かどうかとか
知恵遅れかどうかとか
クソニートかどうか
底辺ドカタかどうか
レスからすぐに分かってしまう

まともに人間がみればすぐに分かる
キミラはなまとなに人間未満のゴミクズなワケ

その自覚すらない
だからまともな人間にすらなれないわけ

わかった?

513 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:10:55.42 ID:dQLVYknK.net]
必死なのはお前じゃん

514 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:12:25.06 ID:LX/My+gD.net]
半コテって一番タチ悪いな
コテハンつけろよNGにするから



515 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:25:44.03 ID:lAySnCDy.net]
本当は夏休み中の中高生じゃないのか?
何だか妙に精神年齢が幼く思える

516 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 16:27:03.18 ID:aDjvXB/e.net]
名前は半角カタカナで頼む

517 名前:デフォルトの名無しさん [2018/08/26(日) 16:29:48.93 ID:hANAm2gW.net]
図星でしっかり反応してるしな

やっぱりなこのスレは
駆除が必要な典型的な低学歴知恵遅れの
クソニートとか底辺ドカタしかいないわ

518 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 17:09:28.74 ID:BwlGzYMc.net]
小馬鹿にした発言が頭悪そうな最高に痛いやつ

519 名前:デフォルトの名無しさん mailto:sage [2018/08/26(日) 18:07:37.48 ID:ujNq2aVI.net]
>>508
確かに夏休み始まった辺りから見かけるようになった気がする

520 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 06:20:27.93 ID:sdfxNc/O.net]
>>499
このスレだけなら 35 だが、この板全体の数なんだ。
必死チェッカーもどきを見たら堂々の 2 位で笑った。
いや、彼の御高説をもっと見たかったんだ。
ちなみに「知恵遅れ」はその 23 とは別に単独で 16 回出てきたよ。

521 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 08:24:49.48 ID:4HBkx10J.net]
自称、俺最強君()は、昔からしばしば見かけるけど。
小学生にも苦笑されそうなレスばかりで、相手をする気にならないんだよね。

hissi.org/read.php/tech/20180825/MHI1aDYvbEw.html
hissi.org/read.php/tech/20180826/aEFOQW0yZ1c.html

勝手に勝利宣言して逃亡するまで放置しておくのが吉。

522 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 08:45:35.65 ID:4ArgrBnx.net]
半角さんはこの板の唯一の良心
この板は腐ってる

523 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 11:56:02.39 ID:woJf6ZC9.net]
>>413
if (条件) {
 …
 …
 ここで(ブロックから)抜けたい -(1)
 … -(2)
} else { … }

こういうこと? (1) はさらに if で条件付で分岐しないと意味がないけど…
※ (1)で分岐しないかぎり (2) 以降が無意味のコードになる

if の外側を do { } while(0) で外を囲って break; したら?

524 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 12:18:18.46 ID:yF4/ft+h.net]
>>515
これだな



525 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 12:18:56.82 ID:yF4/ft+h.net]
おまえらはすぐにどうでもいいことに流される

526 名前:デフォルトの名無しさん [2018/08/27(月) 12:34:41.00 ID:ywsjsNTA.net]
>>516
それだったら2を実行するための何らかの条件がある筈なのでそのためのifブロックの中に2を入れればよい。
そつではなく無条件に2を実行したくないならばソースから削除するかコメントにでもすればよい。

527 名前:デフォルトの名無しさん [2018/08/27(月) 12:36:44.69 ID:ywsjsNTA.net]
すまん。スマホでフリック入力しててタイプミスした。

528 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 12:42:48.65 ID:woJf6ZC9.net]
>>519 意図は伝わったぜー
確かにw

if (条件1) {
 …
 if (条件2) { … -(1) } else { … -(2) }

529 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 12:48:15.12 ID:nj2QXsVo.net]
>>519
そりゃ方法なんていくらでもあるよ
そういう方法をとりたくないってことだろ
理由はしらんが

たとえば(-2)が大きくてインデントを変えたくないとか

530 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 12:50:40.87 ID:vY3QDx2y.net]
だから何でdo while(0)なんて変態コードに固執するんだよ

531 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 12:51:47.69 ID:YYT/vI56.net]
>>522
>>521の方法を思い付かなかった、or 妥当な書き方であると知らない、だけだは?

532 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 12:54:54.13 ID:woJf6ZC9.net]
元質問者に聞くしかない 「goto は使いたくない」の条件で

533 名前:デフォルトの名無しさん [2018/08/27(月) 12:59:44.74 ID:ywsjsNTA.net]
ブロックというものを中に入ったら出られないものと勘違いしているとか。
最初にforやwhileを覚えちゃって勘違いに繋がったとか。

534 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 13:22:18.19 ID:vY3QDx2y.net]
何人たりともforより先に関数のブロックを憶えるのにね
関数のブロックだけが何か特別なものと思い込んでるケースが多い



535 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 13:25:30.84 ID:Q5lEKL35.net]
goto 便利だけどなぁ。
break するがためのフラグ作って何ブロックも break するとか goto を避けるがためのいびつな if を連続させるとかよりよほど可読性が高い。
もちろん意味を的確に表したフラグやifの構造にできるに越したことはないけどさ。

536 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 13:28:07.17 ID:aXwyVMA/.net]
>>523
あえて固執して解決方法を編み出しておくと
ひょんなときに役立つことがあるしな
準備なんてのは9割無駄で当たり前だよね

537 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 13:31:18.13 ID:vY3QDx2y.net]
ジャクソン法やワーニエ法みたいに
データ構造とプログラム構造を一致させる構造化プログラミング()では
データが損傷していた場合にはプログラム構造を一致させることができない
よって構造化定理を諦めたアプローチをせざるを得ない
こういうのがgotoやlongjmpの出番

538 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 13:32:12.14 ID:vY3QDx2y.net]
>>529
その説明じゃ変態行為に固執する理由が説明できてないだろ
ええ加減にせんか、この変態!

539 名前:デフォルトの名無しさん [2018/08/27(月) 13:35:23.06 ID:ywsjsNTA.net]
ま、Cの場合は適切にgoto使った方が良いだろうな。後から作られた言語では break でラベル指定できるだの例外処理できるだのしてるから使わなくて済むようになってるわけで、それのないCはそれの代わりにgoto利用しちゃった方が分かりやすく書ける。

540 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 13:41:42.47 ID:vY3QDx2y.net]
いやCのgotoは制限がキツすぎて
いざという時には役立たず
だからlongjmpがある

541 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 14:22:47.97 ID:Q5lEKL35.net]
そんな制限キツかったっけ?
longjump の方がキツいでしょ

542 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 14:23:38.81 ID:vY3QDx2y.net]
何がキツいって関数から出らんない

543 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 14:34:05.72 ID:J1p6Vf0T.net]
setjump/longjumpは簡易タスクディスパッチャーをC言語だけで実現するためだけにあるのかと思ってたよ。
それ以外の用途はあんまり思い浮かばないなぁ。

544 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 14:40:44.92 ID:TsaU1TVW.net]
自分で対処不能なエラーが起きたときに、初期化してやり直す時に使ったな
だもんで通常の処理の流れで使うものだとは思わなかった



545 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 16:09:02.07 ID:vY3QDx2y.net]
ディスパッチャとしてはダメダメじゃん
jmp_buf jb;

void sig(int n)
{
longjmp(jb, 1);
}

int main(void)
{
signal(SIGINT, sig);
if (setjmp(jb) == 0) for (;;) ;
else puts("ok");
return 0;
}
俺んとこではokが出ない
おまいらんとこではどんな結果になる?

546 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 16:16:45.47 ID:J1p6Vf0T.net]
確かsignalとlongjmpは相性悪かったような?
よく覚えてないけど。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<317KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef