Cとネタに関するindicationのブックマーク (2)
-
はじめに10年以上組込みエンジニアをしている@yagisawaです。Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 本記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に﹁うわっ、可愛そう﹂って思ってもらうのが目標です︵ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、﹁組込みエンジニアの仕事ってこんな感じ﹂というのを知ってもらう意図があったりします。 内容によっては﹁それはあなたの設計が悪いからです﹂と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基本は温かい目で見
-
C++で副作用のない無限ループを書くと未定義動作になります。 ﹁未定義動作﹂というのは口に出すだけでC++プログラマーを震え上がらせる力を持った言葉です。﹁鼻から悪魔が出てくる﹂という言葉で説明されるように、未定義動作を含むコードを実行した結果は何も保証することができず、バグの発見やデバッグすら困難にさせます。未定義動作下においてはコンパイラの気分によってコード片が消え、trueとfalseが同時に成立し、タイムトラベルを引き起こします1。 そのためC++ではうっかり未定義動作が埋め込まれないよう注意が払われるのが普通です。 さて、以下のC++のコードは未定義動作を引き起こします。 下の例は実際にclang/LLVMで最適化を有効にしてコンパイルするとでたらめな値を返す関数ができました。 この話をしたところ、何人かに驚かれたり異論を受け取ったりしたので、この話題について少しまとめてみました
-
1