No.2ベストアンサー
- 回答日時:
はい、if文の真と偽とでは処理の総時間が変わることが多々あります。
そんなことを気にしても、減らせる時間はまさしく微々たるものでしかない(うえ、下手すると論理的に分かりにくいソースコードになる)ので、回答者#1さんのおっしゃるように気にしないのが日常生活ではベストですが、勉強のためという意味で、ちょっと付け加えさせていただきます。
ジャンプ命令が来たとき、CPUは分岐予測を行います。この予測が当たれば早く操作を終わらせることが出来ますし、外れれば予測していない方をやり直すことになり、多少の時間ロスがあります。(詳細はCPU関係の話です。パイプラインとかそのあたり)
処理系によっては、どちらを予測した方がよいかというヒントをコンパイラに与えることが出来るものがあります。OSのソースコードでは、こういうものを見ることがあります。
ただ、普通のプログラムでは論理が見やすいようにすることの価値の方がif文なんぞのチューニングよりも圧倒的に高いです。というかif文のスピードの違いなんてアルゴリズムのチューニング効果やバグ減少効果と比較すればゼロと考えるべきです。
せっかくなら、プログラマという小さな目標ではなく、Hackerになろうとしてください。
http://cruel.org/freeware/hacker.html
No.1
- 回答日時:
> IF文などの判定の時、真の方が処理が速い!とかあるのでしょうか。
処理系次第でしょうが「気にすることはない」と思います。
かなりシビアな環境でチューニングしてる場合を除けば、
「変わらないと思ってても十分」だと思います。
もし懸念がアセンブリレベルでの分岐ロスということであれば、
昨今の賢いコンパイラは最適化で勝手に条件を変えてるかもしれませんし、
それに任せる以上、C言語レベルで気にするのは不毛です。
(最適化を無効にするのは本末転倒ですし、
処理系を特定してチューニングするのもあまり賢いとは思えません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) Excel VBA マクロ ブロック崩しのコードについて。 1 2022/06/22 12:33
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
printfなど、標準関数のソース...
-
ソフトの開発言語を調べる方法
-
組み込みソフト。ROM領域にデータ
-
void型のポインタで構造体の参照
-
unsigned long long 型のフォー...
-
エラー0でのビルド失敗について
-
組込みC開発
-
C言語での式の評価順序について
-
24bit サイズの変数
-
C++でデスクトップGUIアプリ開...
-
関数形式マクロ dtaは戻り値が...
-
bcpadのコンパイラのインストー...
-
パーサとコンパイラの違いって?
-
cc と gcc の違い
-
#pragmaとは
-
オープン系とか、組込み系とか...
-
C++Builder → Visual C++ 移植...
-
Win32のIME制御について
-
Σの計算について
-
COBOLの論理演算子について質問...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
組み込みソフト。ROM領域にデータ
-
cc と gcc の違い
-
C++Builder → Visual C++ 移植...
-
printfなど、標準関数のソース...
-
COBOLのALPHABET...
-
COBOLの論理演算子について質問...
-
Visual Studio でmakefileを使...
-
cobolで実行環境って何ですか?
-
パーサとコンパイラの違いって?
-
昔のgraph.hというファイル
-
未使用引数の注意文出力を回避...
-
C言語でのコンパイラの作成方法
-
C言語はC言語でできている?
-
COBOL計算式の中間ワーク桁数に...
-
リリースモードとデバッグモー...
-
『Bin』ディレクトリは何の略語?
-
POWERCOBOLのSQL...
おすすめ情報