I sure hope a lot of people assume their system doesn&#x27;t have two&#x27;s compliment overflow behavior, because that is absolutely not guaranteed to be the case, and there are real-world C compilers which will not exhibit that behavior in all circumstances.<p>For example, since overflow is undefined, the compiler can assume that an expression like x &gt; x + 1 is always true. Testing with the version of clang that comes with Xcode 7.2, it does this when compiling with -O3.<p>(Note that this is only true of <i>signed</i> overflow. Unsigned overflow is defined behavior, and all unsigned arithmetic is done modulo 2^n where n is the number of bits in the type.)<p>The underlying machine is, of course, two&#x27;s complement. But nothing says the compiler must compile code to match how the underlying machine behaves.<p>Unfortunately, whoever taught your intro to C course apparently didn&#x27;t understand C. This is a frighteningly common occurrence, of course. Most people seem to learn C is a very inconsistent way, and imagine a lot of things about it rather than learning how the language actually works.