!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言語なら俺に聞け 162
https://mevius.5ch.net/test/read.cgi/tech/1698653580/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 163
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bba-Lem2)
2024/07/16(火) 22:43:54.18ID:ZrsCjURC0559デフォルトの名無しさん (ワッチョイ cf76-7Mnr)
2025/01/23(木) 20:41:15.58ID:1Dl3E2N00 前橋和弥って人の本読んで理解した 長らく絶版だったようだが後継本がある
560デフォルトの名無しさん (ワッチョイ cf91-Mwn+)
2025/01/23(木) 21:30:26.88ID:auGoEn4C0561デフォルトの名無しさん (ワッチョイ bf2d-nfRJ)
2025/01/25(土) 14:13:44.88ID:6VZytBSB0 秘伝C言語問答 ポインタ編
562デフォルトの名無しさん (ワッチョイ cf2a-wVPw)
2025/01/25(土) 20:08:03.53ID:ZNC43F5H0 ポインタと云うは死ぬ事と見付けたり
563デフォルトの名無しさん (ワッチョイ cf63-uhza)
2025/01/25(土) 20:36:32.21ID:KsLTQwZH0 ポインタには殺傷能力があります。
使う人は銃器の取扱免許が必須です。
使う人は銃器の取扱免許が必須です。
564デフォルトの名無しさん (アウアウエー Sa52-FFa5)
2025/01/26(日) 22:56:06.95ID:s+0AyHDZa ただのアドレッシング
++したり+=1したら判る
++したり+=1したら判る
565デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/28(火) 10:28:12.96ID:q8xQ82Vup ねえよ
おまえらなら配列ですら殺傷能力あるだろw
おまえらなら配列ですら殺傷能力あるだろw
566デフォルトの名無しさん (ワッチョイ 1759-y8H9)
2025/01/28(火) 14:54:54.74ID:CBv6ZpxK0 配列で死ぬ奴は四天王でも最弱な奴
567デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/28(火) 20:42:19.32ID:C7gY9jH/0 だからさぁ 変数や関数スコープって アドレスでアクセスされたら
アクセス拒否できる仕組みは無いよね?
アクセス拒否できる仕組みは無いよね?
568デフォルトの名無しさん (ワッチョイ 0b01-cjCd)
2025/01/29(水) 06:54:15.10ID:NyAjG/eE0 で?
569デフォルトの名無しさん (ワッチョイ 1aae-qYXa)
2025/01/29(水) 15:06:45.80ID:S8KruiE+0 あったらCの柔軟性が失われると思います
570デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/29(水) 15:10:06.13ID:8Al2cjCTp さすがにセグメント違反は弾かれるぞ
まあ、CPUやOSの機能だけどな
まあ、CPUやOSの機能だけどな
571デフォルトの名無しさん (ワッチョイ fa07-cjCd)
2025/01/29(水) 15:25:45.05ID:ViyYX/ol0 雑談として
いろいろチェックのついたポインタがあっても、それをOFFにできれば問題ないんだぞ
スピードの要らないところにもCは使われているので、そういう部分は、「ごてごて」でもいいんだよ
いろいろチェックのついたポインタがあっても、それをOFFにできれば問題ないんだぞ
スピードの要らないところにもCは使われているので、そういう部分は、「ごてごて」でもいいんだよ
572デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/29(水) 19:33:45.26ID:0piGtrVr0 いやポインタのはなしをしたいのではなくて
高級言語で設計制限を行うことで可読性や設計ミスが高まるという言説があるよね
構造化プログラミングやオブジェクト指向の類
でも実際稼働するのはコンパイル後のマシン語で
gotoというかジャンプ命令もあれば
プライベートへのアクセスを実行時にチェックする機構とか無いわけでしょ
不具合調査はソースコードも大事だけどマシン語の流れも追わなけば
本当のところはわからんよね
更には投機実行や分岐予測もあるわけで
実際の稼働はソースコードによらないしマシン語とも異なる可能性が存在する
高級言語で設計制限を行うことで可読性や設計ミスが高まるという言説があるよね
構造化プログラミングやオブジェクト指向の類
でも実際稼働するのはコンパイル後のマシン語で
gotoというかジャンプ命令もあれば
プライベートへのアクセスを実行時にチェックする機構とか無いわけでしょ
不具合調査はソースコードも大事だけどマシン語の流れも追わなけば
本当のところはわからんよね
更には投機実行や分岐予測もあるわけで
実際の稼働はソースコードによらないしマシン語とも異なる可能性が存在する
573デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/29(水) 19:43:26.10ID:4AeLlQVLp え?
最終的にCPUはマシン語として解釈して動くだけだからなぁ
人間がどう捉えようがそこは変えようが無いんだ
最終的にCPUはマシン語として解釈して動くだけだからなぁ
人間がどう捉えようがそこは変えようが無いんだ
574デフォルトの名無しさん (ワッチョイ 4e63-W7nG)
2025/01/29(水) 22:18:59.64ID:Ow/mCh010 会話として成立していますか?
575デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/30(木) 00:57:38.52ID:dOgLqtqk0 例えば goto文を可能な限り排除して構造化プログラミングというものが提唱されてきた
でもコンパイル後のマシン語にはむき出しのジャンプ命令が使われる
構造化されたループや分岐も実際はジャンプ命令
処理のトレースでもデバッグでもソースコードとマシン語と両方追う必要があるが
goto文を排除した理念の意味が…
ソースコードは見やすいがマシン語はそうではないよね?っていう愚痴のようなもの
でもコンパイル後のマシン語にはむき出しのジャンプ命令が使われる
構造化されたループや分岐も実際はジャンプ命令
処理のトレースでもデバッグでもソースコードとマシン語と両方追う必要があるが
goto文を排除した理念の意味が…
ソースコードは見やすいがマシン語はそうではないよね?っていう愚痴のようなもの
576デフォルトの名無しさん (ワッチョイ 4e2a-cFDo)
2025/01/30(木) 08:50:49.07ID:w2UDYxPo0 むき出しのジャンプ命令...
赤裸々なMovとか、一糸まとわぬAdd とか。
赤裸々なMovとか、一糸まとわぬAdd とか。
577デフォルトの名無しさん (ワッチョイ a75f-7ROj)
2025/01/30(木) 09:29:28.34ID:x87hbq3s0 コンパイラひバグが無いかぎりは高級言語のソース通りに動くから大丈夫だぞ
昔のファミコン並みに処理ステップ数に要するクロックを数えてラインスクロールさせるとかでもしない限りタイミングも気にする必要無いし
昔のファミコン並みに処理ステップ数に要するクロックを数えてラインスクロールさせるとかでもしない限りタイミングも気にする必要無いし
578デフォルトの名無しさん (ワッチョイ fa07-cjCd)
2025/01/30(木) 11:48:21.95ID:1fx7BZxf0 むしろマルチコアの問題のほうがでかい 自分も、高効率に書ける自信がない
579デフォルトの名無しさん (ワッチョイ 0e00-BqhG)
2025/01/30(木) 12:22:11.10ID:K2FsQpfY0 C言語に限らずJavaでもPythonでもLispでも最終的にはブランチしまくりヒープアクセスしまくりなマシン語で動いてるんだから心配しても意味ない。
たまたまC言語はマシン語に近い距離にある言語なのでマシン語「でも」デバッグできてしまうだけの話。
たまたまC言語はマシン語に近い距離にある言語なのでマシン語「でも」デバッグできてしまうだけの話。
580デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/30(木) 16:25:32.68ID:dOgLqtqk0 コンパイラ最適化の時点で追うのが難しい
ましてや投機実行とくると…
ましてや投機実行とくると…
581デフォルトの名無しさん (ワッチョイ 0e76-Vgbt)
2025/01/30(木) 16:27:29.00ID:dOgLqtqk0 思い出した continue や break は優遇されている印象
582デフォルトの名無しさん
2025/01/31(金) 01:34:44.08ID:5fFn3R6V0 Pythonだって安全じゃないしな
俺この間自作したPythonプログラム動かしたら数秒後PCが落ちた
XPとかWindows7とかじゃないぜ、Windows11の最新が突如電源が切れたんだよプツンて
まじでビビった
ちなみに原因は日本語フォントを読み込むコードをカメラキャプチャのループ内(数十から数百ミリ秒ぐらい?)で実行していた
C言語のポインタは危険とか言うけどさ、一番危険なのは俺みたいな馬鹿なコード書く奴の存在だよ
俺この間自作したPythonプログラム動かしたら数秒後PCが落ちた
XPとかWindows7とかじゃないぜ、Windows11の最新が突如電源が切れたんだよプツンて
まじでビビった
ちなみに原因は日本語フォントを読み込むコードをカメラキャプチャのループ内(数十から数百ミリ秒ぐらい?)で実行していた
C言語のポインタは危険とか言うけどさ、一番危険なのは俺みたいな馬鹿なコード書く奴の存在だよ
583デフォルトの名無しさん (ワッチョイ 4e63-W7nG)
2025/01/31(金) 09:59:26.90ID:4ClqIqkw0 君のPCが落ちる程度は許容範囲
584デフォルトの名無しさん (ワッチョイ fa07-cjCd)
2025/01/31(金) 11:00:00.59ID:uHjOTXCx0 考えようによっては、タチの悪いDoSじゃないかw
カメラごときで全体落としてんじゃねえよ > カーネル層
ロジックバグなんだろうけど、こういうのはしかし難しいね
カメラごときで全体落としてんじゃねえよ > カーネル層
ロジックバグなんだろうけど、こういうのはしかし難しいね
585デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/31(金) 11:20:36.48ID:h9+hJoTPp ドライバの秘孔を突いただけだから
586デフォルトの名無しさん (ワッチョイ 4e63-W7nG)
2025/01/31(金) 11:30:08.08ID:4ClqIqkw0 ドライバーに致命的不具合があったとしても
ブルスクになる程度で
電源断まで行くと言うのは考え難い
ブルスクになる程度で
電源断まで行くと言うのは考え難い
587デフォルトの名無しさん (ササクッテロラ Sp3b-7ROj)
2025/01/31(金) 11:49:46.06ID:h9+hJoTPp ドライバの秘孔を突いてカメラに搭載のチップが電源ライン直結になったとかじゃね?
588デフォルトの名無しさん
2025/01/31(金) 18:44:56.94ID:5fFn3R6V0 原因はそっち(ドライバ)ではなくスリープなしのループ内でフォントファイルに連続攻撃したことだぜ、たぶん
簡単に書くとこんな感じ
fontpath ='C:\\Windows\\Fonts\\DFJGOTEB.TTC'
while True:
put_ja(point, text)
def put_ja(point, text):
font = ImageFont.truetype(fontpath, 32)
draw.text(point, text, fill=color, font=font)
実際にはwhileじゃなくてafterでループさせてたけど
日本語出力の時、出力のたびにフォントファイル読み込んでたようで結果PCが落ちた
残像攻撃を受けた感じだったのかもしれん、コロ先生の分身みたいなやつ
簡単に書くとこんな感じ
fontpath ='C:\\Windows\\Fonts\\DFJGOTEB.TTC'
while True:
put_ja(point, text)
def put_ja(point, text):
font = ImageFont.truetype(fontpath, 32)
draw.text(point, text, fill=color, font=font)
実際にはwhileじゃなくてafterでループさせてたけど
日本語出力の時、出力のたびにフォントファイル読み込んでたようで結果PCが落ちた
残像攻撃を受けた感じだったのかもしれん、コロ先生の分身みたいなやつ
589デフォルトの名無しさん (ワッチョイ 0e00-BqhG)
2025/01/31(金) 19:36:45.83ID:R7Zj8Mog0 プリエンプティブカーネル使っててスリープなしのループごときでそんなことあり得るのか?
逆にそうなった仕組みが知りたい。
逆にそうなった仕組みが知りたい。
590デフォルトの名無しさん (ワッチョイ 9a79-x7zn)
2025/01/31(金) 19:40:58.83ID:1pwkweKb0 インテルのTurboBoostだかで負荷もブーストされて排熱が間に合わずMBにダメージ与えつつ逝ったんじゃないの
PC買い換えた方がいいよ
PC買い換えた方がいいよ
591デフォルトの名無しさん (ワッチョイ b6fc-jays)
2025/01/31(金) 19:54:38.13ID:R/wyJ37S0 ブルースクリーンもなしにおちるなんてハード不良
592デフォルトの名無しさん
2025/01/31(金) 20:00:56.86ID:5fFn3R6V0 スレチで申し訳ないが、
俺も気にはなってるけどPC痛めつけてまでやる気にはなれない
試したいなら試してくれ、ただしどうなっても責任は負わんぞw
MicrosoftストアのPython Software Foundationってとこの奴
Python 3.13.1 (tags/v3.13.1:0671451, Dec 3 2024, 19:06:28) [MSC v.1942 64 bit (AMD64)] on win32
OpenCVで日本語表示
https://monomonotech.jp/kurage/raspberrypi/opencv_japanese.html
ここのputText_japaneseを参考にした(パスとかwindows用に書き換え)
んで、それを
【簡単】QRコードの作成と読み取り in Python
https://qiita.com/PoodleMaster/items/0afbce4be7e442e75be6
のcv2.putTextと置き換えるように書き換えたんよ
引数のfontはなくしてフォントサイズだけを渡す
ImageFont.truetypeがフォントサイズも引数にしているから、こうすれば動的なフォントサイズ変更にも対応できるな、ヨシ!って思ってね
それ実行したらPC落ちた
それでも数回やって問題なかった記憶はあるんだけどね(ただし数十秒程度の起動時間だった)
ちょっと長めに起動させたままにしたからリソース食いつぶしたのかな?と思ってる
俺も気にはなってるけどPC痛めつけてまでやる気にはなれない
試したいなら試してくれ、ただしどうなっても責任は負わんぞw
MicrosoftストアのPython Software Foundationってとこの奴
Python 3.13.1 (tags/v3.13.1:0671451, Dec 3 2024, 19:06:28) [MSC v.1942 64 bit (AMD64)] on win32
OpenCVで日本語表示
https://monomonotech.jp/kurage/raspberrypi/opencv_japanese.html
ここのputText_japaneseを参考にした(パスとかwindows用に書き換え)
んで、それを
【簡単】QRコードの作成と読み取り in Python
https://qiita.com/PoodleMaster/items/0afbce4be7e442e75be6
のcv2.putTextと置き換えるように書き換えたんよ
引数のfontはなくしてフォントサイズだけを渡す
ImageFont.truetypeがフォントサイズも引数にしているから、こうすれば動的なフォントサイズ変更にも対応できるな、ヨシ!って思ってね
それ実行したらPC落ちた
それでも数回やって問題なかった記憶はあるんだけどね(ただし数十秒程度の起動時間だった)
ちょっと長めに起動させたままにしたからリソース食いつぶしたのかな?と思ってる
593デフォルトの名無しさん (アウアウエー Sa52-FFa5)
2025/02/01(土) 12:06:57.91ID:Dm0gVBeEa 負荷掛け過ぎてコンデンサが爆発したんだろ
594 cha 警備員[Lv.1][新芽] (ワッチョイ 87bc-UTVl)
2025/02/09(日) 11:28:31.00ID:WswbN0Go0 全く関係の無いことですが、ここに書き込まさせてください。
あるサイトの問題集で、巨大な数の足し算を行うのに、整数型使えないから文字型使おうって書いてありました。
どうやったらその発想ができるんですか?
私プログラミング初心者なのですが、、、
あるサイトの問題集で、巨大な数の足し算を行うのに、整数型使えないから文字型使おうって書いてありました。
どうやったらその発想ができるんですか?
私プログラミング初心者なのですが、、、
595デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 11:34:40.48ID:sBzel75s0 頭の出来だろw
597デフォルトの名無しさん (ワッチョイ 7fab-oD/y)
2025/02/09(日) 12:36:10.76ID:G/CYNigQ0 なんで関係ないと思うんだろうか
誰でもプログラミングができるって言っている人がいたので。
条件分岐とかループ処理のやつは解けるやつもあれば、解けないやつがあっても解説見れば次は出来ますが、文字列関係になると頭の中が[?]になるんです。
600デフォルトの名無しさん (ササクッテロ Spa3-Z3xl)
2025/02/09(日) 13:07:51.84ID:ql26y8Y/p 応用力…今の学校教育じゃ養われない能力が大切
応用力ですか、。なんか、数学と同じ感じですね。基礎ができたと思っても応用ができないみたいな。
ちなみに、応用力ってどの様に勉強すれば身につくものなんですか?
ちなみに、応用力ってどの様に勉強すれば身につくものなんですか?
602デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/09(日) 13:46:11.17ID:k5BYzD4Y0 30桁くらいの2つの整数値を筆算で加算するときの手順をイメージして
それをプログラム化してみれば良い
そんなに難しくはないだろう
それをプログラム化してみれば良い
そんなに難しくはないだろう
603デフォルトの名無しさん (ワッチョイ 465c-6Hi7)
2025/02/09(日) 13:46:45.75ID:KfUn2qZi0 >>594
そのサイトクソだよ
そのサイトクソだよ
>>602
筆算のイメージはあるのですが、整数型でやろうとしたらエラーになって、実数型でやろうとしてもエラーになるので、なんでだろーって思って解説ん見てみたら、[文字列型にしましょう]って書いてあったので[?]ってなってしまうのです。
筆算のイメージはあるのですが、整数型でやろうとしたらエラーになって、実数型でやろうとしてもエラーになるので、なんでだろーって思って解説ん見てみたら、[文字列型にしましょう]って書いてあったので[?]ってなってしまうのです。
>>602
筆算のイメージもそのサイトの解説みてから、そうなんだと思ったんですけど、どうも初見だとイメージが沸かないんですよ。
筆算のイメージもそのサイトの解説みてから、そうなんだと思ったんですけど、どうも初見だとイメージが沸かないんですよ。
606デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/09(日) 14:27:08.84ID:k5BYzD4Y0 イメージ湧かないなら、手を動かそう
そこに答えがあるよ
そこに答えがあるよ
608デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 17:03:10.36ID:TclGPY+C0 整数32bitでも64bitでも最大値は決まっている
でも大きい整数を表すのに64bit整数1つだけ使うとは決まっていない
桁溢れをプログラム的に検出して
溢れた分を別の64bit整数に記録すれば大きな整数を扱える
64bit+64bit+....
で整数を表す感じ
でも大きい整数を表すのに64bit整数1つだけ使うとは決まっていない
桁溢れをプログラム的に検出して
溢れた分を別の64bit整数に記録すれば大きな整数を扱える
64bit+64bit+....
で整数を表す感じ
609デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 17:04:41.81ID:TclGPY+C0 文字列って1Byte整数の配列でしょ?無駄が多いよ
8Byte整数の組合せを上で挙げたけど、8Byte整数の配列でも当然できる
8Byte整数の組合せを上で挙げたけど、8Byte整数の配列でも当然できる
610デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 17:14:14.93ID:sBzel75s0 無駄を省くより可読性の方が大切
8bit時代のファミコンじゃ無いんだから
そんなキリキリ詰め込んだってわけわからん事になるだけ
8bit時代のファミコンじゃ無いんだから
そんなキリキリ詰め込んだってわけわからん事になるだけ
611デフォルトの名無しさん (ワッチョイ 465c-6Hi7)
2025/02/09(日) 17:36:57.81ID:KfUn2qZi0612デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 18:12:23.04ID:sBzel75s0 桁上がりを別に判定しなきゃならないんだから扱えるギリギリの桁で計算するのはバカだろw
アセンブラなら桁あふれフラグ見て簡単に処理出来るだろうが、Cだと無理
アセンブラなら桁あふれフラグ見て簡単に処理出来るだろうが、Cだと無理
613デフォルトの名無しさん (ブーイモ MMaa-6Hi7)
2025/02/09(日) 18:46:42.50ID:fEimQ790M614デフォルトの名無しさん (ブーイモ MMaa-6Hi7)
2025/02/09(日) 18:57:40.14ID:fEimQ790M615デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 19:00:51.12ID:TclGPY+C0 整数値それぞれ (左右どっちだっけ)シフト1bitやって(1/2の値)足したのが最大値の半分超えたら桁溢れ
上位桁に溢れるだけ加算
Cでもできるに決まっているじゃん これだけだよ
上位桁に溢れるだけ加算
Cでもできるに決まっているじゃん これだけだよ
616デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 19:09:00.04ID:TclGPY+C0 文字列って溢れの分が1-9まであって大変そう
バイナリなら1bitだけでしょ
バイナリなら1bitだけでしょ
>>615
それってシフト演算の話ですか?(違ってたらごめんなさい。)
私、シフト演算は苦手なんですよね。
ただシフトするだけなら参考書とサイトみたらできますけど、ノールックでさらに四則演算になるとできないんですよ。
それってシフト演算の話ですか?(違ってたらごめんなさい。)
私、シフト演算は苦手なんですよね。
ただシフトするだけなら参考書とサイトみたらできますけど、ノールックでさらに四則演算になるとできないんですよ。
618デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/09(日) 19:34:02.21ID:TclGPY+C0 考えたらシフトは無駄だった
64bit整数のうち63bit整数で考えて最上位ビットを溢れ判定に使えばよいだけ
あんまり書くと宿題の手伝いになってそう
64bit整数のうち63bit整数で考えて最上位ビットを溢れ判定に使えばよいだけ
あんまり書くと宿題の手伝いになってそう
619デフォルトの名無しさん (ブーイモ MMaa-6Hi7)
2025/02/09(日) 19:44:20.36ID:fEimQ790M620はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/09(日) 19:51:22.43ID:vUYqd53r0 二進化十進はたとえば表示の処理なんかは簡単になるので無駄なわけではない。
621デフォルトの名無しさん (ワッチョイ 0f5f-Z3xl)
2025/02/09(日) 20:03:35.95ID:sBzel75s0 いまどき文字も16bit時代にケチケチすんなw
623デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/10(月) 07:27:24.30ID:ZpC+jsE10 あと実数でやったと出たけど要注意
double verybignum;
verybignum += 1.0;
で1.0は桁を合わせると0に消えて足されない場合がある
double verybignum;
verybignum += 1.0;
で1.0は桁を合わせると0に消えて足されない場合がある
624デフォルトの名無しさん (アウアウエー Sa82-R6kM)
2025/02/10(月) 11:48:59.09ID:Z13/KCo3a 吊りならともかく本物の初心者なら文字コードを知らないってこともあるだろうな
多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず
それでもピンと来ないなら先に文字コードについて理解するべき
多倍長整数をバイト列(1桁0-255)じゃなくて文字列(1桁0-9)で表すのは無駄が多いがアルゴリズムは同じはず
それでもピンと来ないなら先に文字コードについて理解するべき
IntelのアセンブラならBCDを扱う命令があったと思うけど、Cでやるなら文字に代入する時点で &= 0x0F、計算して出力する前に |= 0x30(でいいんだっけ?)かなー
626はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-XAIF)
2025/02/10(月) 13:19:14.90ID:cWC6BpGk0 やや強引だがアドレスとして同じでも比較すると等しくないという結果になる例を作ってみた。
https://wandbox.org/permlink/hpAkiEeiZclvQJsn
概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。
ホスト規制でしばらく書き込めなかったので遅レスですまぬ。
https://wandbox.org/permlink/hpAkiEeiZclvQJsn
概念的にはポインタはアドレスというのでも間違いではないけど実際には言語のルールを把握していないと引っかかることもある。
ホスト規制でしばらく書き込めなかったので遅レスですまぬ。
627デフォルトの名無しさん (ワッチョイ 6a56-WFrT)
2025/02/10(月) 16:46:22.93ID:xKid5uSQ0 よく分からないがこうなる理由が分からないという意味の質問かな?
まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある
それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる
そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう
初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう
他にもヘンな部分があるので色々他の人のコードとかも読むといいね
まあそうだとして、C言語では異なるオブジェクトへのポインタを比較出来ないってルールがある
それが行われているので、未定義の動作といってこのプログラムではコンパイラがどんな事をしてもいいことになってる
そのどんな事の中にはnot equalを表示するという動作も含まれているので、たまたまそうなったんでしょう
初心者がよくやるFAQレベルのミスなので、ポインタとオブジェクトを理解する意味でその辺も読んでみればもっと上達するでしょう
他にもヘンな部分があるので色々他の人のコードとかも読むといいね
628はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/10(月) 17:14:00.11ID:cWC6BpGk0 >>627
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
ポインタにはアドレスが入ってるだけという話題が出てたからそんなことはないという注意喚起。
629はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/10(月) 17:18:14.15ID:cWC6BpGk0 >>623
文意がよくわからんが初期化されてないから不定値になってるんじゃない?
文意がよくわからんが初期化されてないから不定値になってるんじゃない?
630デフォルトの名無しさん
2025/02/10(月) 17:44:23.62ID:1DQgWNxh0 これはどういうことなんだ?
foo、barの順にスタックに積まれる
bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る
bazとquzには同じ番地(値)が入っている
までは分かる
bazもquzもint型を指している
が、bazとquzの内容を比較するとことなる
なんじゃこりゃ〜
酔ってなくても分からなそう
foo、barの順にスタックに積まれる
bazにはfooの次の(intの境界の)番地(barと同じ)が入り、quzにはbarの番地が入る
bazとquzには同じ番地(値)が入っている
までは分かる
bazもquzもint型を指している
が、bazとquzの内容を比較するとことなる
なんじゃこりゃ〜
酔ってなくても分からなそう
633デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 08:30:33.47ID:YWsMUNTvp 型変換すればOK
634はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/11(火) 11:05:12.56ID:0+q77CUl0 >>632
強調しておくけど未定義は何が起こってもよい。
この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。)
低レイヤから入った人は未定義をナメてることが結構あるとは思う。
どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。
強調しておくけど未定義は何が起こってもよい。
この場合は一応は式が式として評価されたかのように動作してるので比較的マシな部類で、未定義を踏んでいる箇所とは遠く離れた箇所で意味不明の動作が起こることもある。(起こってもよい。)
低レイヤから入った人は未定義をナメてることが結構あるとは思う。
どのような機械語にコンパイルされるか想像できる (と本人は思っている) 故の弊害だなぁ。
635デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 11:22:08.87ID:kmJe274sp Cなんてポインターは全部void*だろ
636デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/11(火) 11:37:41.91ID:7Jzkf7ZG0 ご無体な
>>626 は僕のgccのパージョンだと
-O2 ありだと "not equal"
最適化なしだと "equal"
-S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に
puts("not equal");
とするコードを出力していた
"equal" のリテラルすらコードにはない
降参
-O2 ありだと "not equal"
最適化なしだと "equal"
-S つけて .s をみると、-O2 ありのときポインタの比較すらせず単純に
puts("not equal");
とするコードを出力していた
"equal" のリテラルすらコードにはない
降参
638デフォルトの名無しさん (ワッチョイ 4606-6Hi7)
2025/02/11(火) 13:33:00.20ID:jMpjlVqA0 strict aliasingのルールがなぜあるか理解してたらある程度予想つくだろ
639デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/11(火) 14:32:56.35ID:VhWouMxY0 そもそも 8Byteや4Byte変数のポインタが例えば奇数の数値が許されるのかとか
640デフォルトの名無しさん (ワッチョイ 1e63-euVe)
2025/02/11(火) 14:40:28.60ID:7Jzkf7ZG0 文字列を指すポインタなら、一文字ずつインクリメント出来ないと困るよね
641デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 14:52:06.30ID:+ybAiMfGp >>639
CPUによる
CPUによる
642デフォルトの名無しさん (ワッチョイ 4606-6Hi7)
2025/02/11(火) 15:43:23.98ID:jMpjlVqA0 >>639
それどこへのレス?
それどこへのレス?
643デフォルトの名無しさん (ラクッペペ MMc6-2Ktg)
2025/02/11(火) 16:44:48.97ID:ZUCQJ4rmM >>640
いつ困るんだ?
いつ困るんだ?
>>627は
最適化されると出力されるコードを推測することは無理だ、ということね
最適化されると出力されるコードを推測することは無理だ、ということね
645デフォルトの名無しさん (ワッチョイ 4606-6Hi7)
2025/02/11(火) 17:19:32.60ID:jMpjlVqA0 無理はいいすぎ
やったことないやつがしったかすんな
やったことないやつがしったかすんな
646デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/11(火) 17:20:33.85ID:0gFNLz1yp ARM系はほんと無理
647デフォルトの名無しさん (ワッチョイ 5302-aFRq)
2025/02/11(火) 18:37:22.58ID:2gjYX+K80 貴方みたいな人はほんと無理
とか言われたら傷ついちゃう
とか言われたら傷ついちゃう
648デフォルトの名無しさん (ワッチョイ 7f1b-hc6T)
2025/02/11(火) 21:27:22.00ID:JzAdQ4dR0 とりあえず読むべし
旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜
https://qiita.com/__pandaman64__/items/1788a90ae5be79cc908b
旧石器時代のポインタをご利用の皆様へ 〜provenance入門〜
https://qiita.com/__pandaman64__/items/1788a90ae5be79cc908b
>>648
thx!
thx!
650デフォルトの名無しさん (ワッチョイ de76-/Fy3)
2025/02/11(火) 21:58:43.75ID:VhWouMxY0 こんなの分割コンパイルしたら分からないし ライブラリならなおさら
実行時にどのオブジェクト由来なんて情報持っておけるのか?
int func(int *ip, int *iq)
{
if (ip == iq) {
} else {
}
}
実行時にどのオブジェクト由来なんて情報持っておけるのか?
int func(int *ip, int *iq)
{
if (ip == iq) {
} else {
}
}
651デフォルトの名無しさん (ワッチョイ 46a9-6Hi7)
2025/02/11(火) 22:39:07.83ID:jMpjlVqA0 コンパイル時に決まってんじゃん
652デフォルトの名無しさん (スップ Sd4a-26Jk)
2025/02/11(火) 23:02:33.92ID:DgpMDse2d このコテハンの人いつもこんなだよね
まともに出来るのが規格のコピペみたいな事だけで、それ以外だとすぐとんちんかんな事言い出して突っ込まれてる
まともに出来るのが規格のコピペみたいな事だけで、それ以外だとすぐとんちんかんな事言い出して突っ込まれてる
653はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff32-DO7v)
2025/02/11(火) 23:17:19.29ID:0+q77CUl0 >>650
わかる範囲でやるってだけ。
わからないところは保守的なコードを生成する。
ただ、今は LTO があるのでわかる範囲がだいぶん広い。
わからないからこそプログラマは未定義なことをしないと仮定した最適化をする (未定義を踏んでたらむちゃくちゃになる) という場合もある。
わかる範囲でやるってだけ。
わからないところは保守的なコードを生成する。
ただ、今は LTO があるのでわかる範囲がだいぶん広い。
わからないからこそプログラマは未定義なことをしないと仮定した最適化をする (未定義を踏んでたらむちゃくちゃになる) という場合もある。
654デフォルトの名無しさん (ワッチョイ d301-XAIF)
2025/02/12(水) 10:25:19.84ID:WVzDbo940 >>648
ポインタpとqの値が同じにならないんだけど…
ポインタpとqの値が同じにならないんだけど…
655デフォルトの名無しさん (ササクッテロラ Spa3-Z3xl)
2025/02/12(水) 10:28:46.36ID:p1VJlK94p Cに余計なもん付けたらいにしえのLinux由来のコードが通らなくなるだろ
656デフォルトの名無しさん (ワッチョイ 6a4d-WFrT)
2025/02/12(水) 11:20:54.68ID:OojhOsKe0657627 (ワッチョイ 6a4d-WFrT)
2025/02/12(水) 11:21:58.36ID:OojhOsKe0 >>631
未定義の動作なので2行目から7行目のような事が起きるかどうかは分からない
仮に未定義の動作がなかったとしても行目を自明のように仮定することは出来ない
アーキテクチャが色々ある中そういう処理系もあればそうでない処理系もあるしCでは何も規定してない
スタックの仕組みがないものもあればポインタをそもそも数値や番地で扱わないアーキテクチャもある
後段も同様
未定義の動作なので2行目から7行目のような事が起きるかどうかは分からない
仮に未定義の動作がなかったとしても行目を自明のように仮定することは出来ない
アーキテクチャが色々ある中そういう処理系もあればそうでない処理系もあるしCでは何も規定してない
スタックの仕組みがないものもあればポインタをそもそも数値や番地で扱わないアーキテクチャもある
後段も同様
658627 (ワッチョイ 6a4d-WFrT)
2025/02/12(水) 11:22:39.59ID:OojhOsKe0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 地球から無限km先の場所ってどうなっているの?
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 日本、高市のお陰で破滅に近づくwwwwwwww
- AIアーティストだけど作品公開する
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
