C言語はなぜ「未定義動作だらけ」なのか――記事が突きつける、ちょっと笑えない現実
C/C++では、undefined behavior(未定義動作)が思った以上に多い それは「コンパイラの嫌がらせ」ではなく、言語仕様上、何が起きても文句を言えない状態のこと 未定義動作は、最適化の有無に関係なく危険になりうる アラインメント不一致、型変換、可変長引数、null pointer、ゼロ除算など、一見普通に見えるコードにも落とし穴がある 著者の主張はかなり強めだが、「Cは細部まで気をつけてもなお危ない」という警鐘としては非常に示唆的 今回紹介する記事は、タイトルからしてかなり挑発的です。 「Everything in C is undefined behavior」――直訳すれば「Cのすべては未定義動作だ」。もちろん厳密には言いすぎですが、著者はあえて極端な表現で、C/C++の怖さを読者に叩きつけています。 率直に言うと、これはかなり面白い記事です。 なぜなら、単に「Cは危ないよね」で終わらず、“どこがどう危ないのか” を、具体例を積み上げながら見せてくるからです。しかもその例が、いかにもありがちなものばかり。読んでい
papoo.work