
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
鼻から悪魔:不定値(indeterminate value)バージョン - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
鼻から悪魔:不定値(indeterminate value)バージョン - Qiita
#include <cstdio> #define NUMBER 42 static void func(int& rv) { int local = rv; if (local == NUMB... #include <cstdio> #define NUMBER 42 static void func(int& rv) { int local = rv; if (local == NUMBER) { std::puts("hit"); } else { std::puts("stay"); } } int main() { int v; // indeterminate value func(v); } 答え: gcc 6.1, -O2オプション: stay clang 3.9.0, -O2オプション: hit は?clangなにやってんの? clangの場合、マクロNUMBERを任意の数値にかえたとしても結果はhitになります。 一方のgccは何となく正しいようにも思えますかね? コンパイラのバグだろ? いいえ、C++ソースコードのバグです。悔い改めてください。 変数vは不定値(i