プログラミングで y = 1 / (1 / x) ってやったらどうなるの?
■ このスレッドは過去ログ倉庫に格納されています
頭のいいコンパイラなら y = x にしてくれるのか?(機械語にするとき)
あっ、ちなみにインタプリタ言語やLLでは普通に t = (1 / x) を計算して y = 1 / t にするだろうそりゃ
うちは自動車メーカーだからな、使ってるのはC言語で、コンパイラは GHS MULTI っていうお前らが知らないコンパイラだよ 知らないコンパイラの話されたら分からないとしか言えない >>3
C言語や機械語だと分母0で除算したらundefinedではなく0割りで内部割込みで停止するよ >>6
数学的には本来 x = 0 が特異点になるはず >>8
/: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ ___
/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶 Cなら未初期化でわけわからんこたえがでるんじゃねーの そんなことはしないだろう
普通に式通りの計算するだけだ 俺のいた会社に来た元自動車メーカーの人はコンパイラがどうやってアセンブリにしてるか見てたけどな
ルネサスのコンパイラならCがどうアセンブラにしてるか簡単に見れそうだけど つまり「このソースは、最適化によって動作結果が変わる場合があるのか?」という質問なのね? >>10
もしスレタイの1文しかない前提ならそもそもコンパイルできないんだが
変数の宣言と使用前の初期化はしている前提な
未初期化変数を参照するのは、言語によってはコンパイル時エラーとなるが、
C言語の場合はコンパイラによっては警告を出してビルドが通ってしまうけどバグだね MISRA C な lint に何か言われたりしないの? 言語による
比較的最近のGOとかCotlinとかならコンパイル時に数式含めて最適化される >>11
それな
ちなみに、諸事情で次のようなコードになるような設計になったんだが
y = CONST1 - (x + CONST2);
ビルドして機械語を見たら、次のコードと同じ処理になってたぜ
y = CONST3 - x;
(CONST3 は (CONST1 - CONST2) の計算結果)
>>13
うちで使ってるコンパイラだとGUI上で逆アセンブルした結果が見れるよ >>9
プログラミングするとどうなんだろう?インタプリタはこうだけど
ってあーたが書いたんでしょう? >>16
うちだと静的解析ツールは QAC と Polyspace Bug Finder だから lint は知らない
てか、会社に行かないとこういうツール使えないわwww
さすがに個人で高いツールは買いたくないなwww ■ このスレッドは過去ログ倉庫に格納されています