[過去ログ] C言語なら俺に聞け 163 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
619: (ブーイモ MMaa-6Hi7) 02/09(日)19:44 ID:fEimQ790M(3/3) AAS
>>618
足したあとの結果から判定する
教えるなら定石を教えろや
620: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/09(日)19:51 ID:vUYqd53r0(1) AAS
二進化十進はたとえば表示の処理なんかは簡単になるので無駄なわけではない。
621: (ワッチョイ 0f5f-Z3xl) 02/09(日)20:03 ID:sBzel75s0(4/4) AAS
いまどき文字も16bit時代にケチケチすんなw
622: 警備員[Lv.8][新芽] (ワッチョイ 87bc-UTVl) [chanqi] 02/09(日)22:27 ID:WswbN0Go0(10/10) AAS
>>618
なるほどですね。因みにこれは宿題ではなく、自主学習のやつです。とあるサイトの解説がよくわからなくてこの板の方々に質問させていただきました。
ありがとうございます。
623(1): (ワッチョイ de76-/Fy3) 02/10(月)07:27 ID:ZpC+jsE10(1) AAS
あと実数でやったと出たけど要注意
double verybignum;
verybignum += 1.0;
で1.0は桁を合わせると0に消えて足されない場合がある
624: (アウアウエー Sa82-R6kM) 02/10(月)11:48 ID:Z13/KCo3a(1) AAS
吊りならともかく本物の初心者なら文字コードを知らないってこともあるだろうな
多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず
それでもピンと来ないなら先に文字コードについて理解するべき
625: 警備員[Lv.2][新芽] (ワッチョイ 278e-tGgj) 02/10(月)13:13 ID:BwJhqJpr0(1) AAS
IntelのアセンブラならBCDを扱う命令があったと思うけど、Cでやるなら文字に代入する時点で &= 0x0F、計算して出力する前に |= 0x30(でいいんだっけ?)かなー
626(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-XAIF) 02/10(月)13:19 ID:cWC6BpGk0(1/3) AAS
やや強引だがアドレスとして同じでも比較すると等しくないという結果になる例を作ってみた。
外部リンク:wandbox.org
概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。
ホスト規制でしばらく書き込めなかったので遅レスですまぬ。
627(4): (ワッチョイ 6a56-WFrT) 02/10(月)16:46 ID:xKid5uSQ0(1) AAS
よく分からないがこうなる理由が分からないという意味の質問かな?
まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある
それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる
そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう
初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう
他にもヘンな部分があるので色々他の人のコードとかも読むといいね
628(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/10(月)17:14 ID:cWC6BpGk0(2/3) AAS
>>627
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
629: はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/10(月)17:18 ID:cWC6BpGk0(3/3) AAS
>>623
文意がよくわからんが初期化されてないから不定値になってるんじゃない?
630: 02/10(月)17:44 ID:1DQgWNxh0(1) AAS
>>627
> よく分からないがこうなる理由が分からないという意味の質問かな?
このスレは初めてか?
はちみつさんがそんな質問するわけないだろ
631(1): 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) 02/11(火)00:58 ID:nkHTE6y60(1/2) AAS
これはどういうことなんだ?
foo、barの順にスタックに積まれる
bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る
bazとquzには同じ番地(値)が入っている
までは分かる
bazもquzもint型を指している
が、bazとquzの内容を比較するとことなる
なんじゃこりゃ〜
酔ってなくても分からなそう
632(1): 警備員[Lv.5][新芽] (ワッチョイ 8713-tGgj) 02/11(火)01:04 ID:nkHTE6y60(2/2) AAS
>>627がいうことがそれなのか
未定義だと
アセンブラ脳だと同じとみなしてくれてよさそうだけど、難しいね…
633: (ササクッテロラ Spa3-Z3xl) 02/11(火)08:30 ID:YWsMUNTvp(1) AAS
型変換すればOK
634(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ ff32-DO7v) 02/11(火)11:05 ID:0+q77CUl0(1/2) AAS
>>632
強調しておくけど未定義は何が起こってもよい。
この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。)
低レイヤから入った人は未定義をナメてることが結構あるとは思う。
どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。
635: (ササクッテロラ Spa3-Z3xl) 02/11(火)11:22 ID:kmJe274sp(1) AAS
Cなんてポインターは全部void*だろ
636: (ワッチョイ 1e63-euVe) 02/11(火)11:37 ID:7Jzkf7ZG0(1/2) AAS
ご無体な
637: 警備員[Lv.6][新芽] (ワッチョイ 46ac-tGgj) 02/11(火)12:35 ID:m4FoXgHJ0(1/2) AAS
>>626 は僕のgccのパージョンだと
-O2 ありだと "not equal"
最適化なしだと "equal"
-S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に
puts("not equal");
とするコードを出力していた
"equal" のリテラルすらコードにはない
降参
638: (ワッチョイ 4606-6Hi7) 02/11(火)13:33 ID:jMpjlVqA0(1/4) AAS
strict aliasingのルールがなぜあるか理解してたらある程度予想つくだろ
639(2): (ワッチョイ de76-/Fy3) 02/11(火)14:32 ID:VhWouMxY0(1/2) AAS
そもそも 8Byteや4Byte変数のポインタが例えば奇数の数値が許されるのかとか
640(1): (ワッチョイ 1e63-euVe) 02/11(火)14:40 ID:7Jzkf7ZG0(2/2) AAS
文字列を指すポインタなら、一文字ずつインクリメント出来ないと困るよね
641: (ササクッテロラ Spa3-Z3xl) 02/11(火)14:52 ID:+ybAiMfGp(1) AAS
>>639
CPUによる
642: (ワッチョイ 4606-6Hi7) 02/11(火)15:43 ID:jMpjlVqA0(2/4) AAS
>>639
それどこへのレス?
643: (ラクッペペ MMc6-2Ktg) 02/11(火)16:44 ID:ZUCQJ4rmM(1) AAS
>>640
いつ困るんだ?
644(1): 警備員[Lv.3][新芽] (ワッチョイ 1ac9-tGgj) 02/11(火)16:59 ID:MJELNENN0(1) AAS
>>627は
最適化されると出力されるコードを推測することは無理だ、ということね
645: (ワッチョイ 4606-6Hi7) 02/11(火)17:19 ID:jMpjlVqA0(3/4) AAS
無理はいいすぎ
やったことないやつがしったかすんな
646: (ササクッテロラ Spa3-Z3xl) 02/11(火)17:20 ID:0gFNLz1yp(1) AAS
ARM系はほんと無理
647: (ワッチョイ 5302-aFRq) 02/11(火)18:37 ID:2gjYX+K80(1) AAS
貴方みたいな人はほんと無理
とか言われたら傷ついちゃう
648(4): (ワッチョイ 7f1b-hc6T) 02/11(火)21:27 ID:JzAdQ4dR0(1) AAS
とりあえず読むべし
旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜
外部リンク:qiita.com
上下前次1-新書関写板覧索設栞歴
あと 354 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.015s