You're hardly beginning to scrape the surface of unpredictability.
macro expansion, signed overflow, weird operator precedence, complex coercion rules, bitfield layout and signedness, external linkage name limits, char signedness, errno, the whole mess of #include paths and name conflicts, functions you can never safely use (tmpnam(), gets(), atoi(), signal()), ...