[Часть 1][1]
**Часть 2**
Часть 3
В первой части нашего цикла мы обсудили, что такое неопределённое поведение, и как оно позволяет компиляторам C и C++ генерировать более высокопроизводительные приложения, чем «безопасные» языки. В этом посте мы обсудим, чем на самом деле является «небезопасный» C, объяснив некоторые совершенно неожиданные эффекты, вызываемые неопределённым поведением. В третьей части, мы обсудим, как «дружественные» компиляторы могут смягчить некоторые из таких эффектов, даже если они не обязаны это делать.
Мне нравится называть это «Почему неопределённое поведение часто пугает и ужасает программистов на C». :-)
![image][2]
[Читать дальше →][3]
[1]:
https://habrahabr.ru/post/341048/
[2]:
https://habrastorage.org/webt/ye/6c/kq/ye6ckqam7sn2kuhrp9tqg3-knzo.jpeg
[3]:
https://habrahabr.ru/post/341144/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut