On some microcontrollers I know a pointer to address 0 really is just that. I tested compiling the following<p><pre><code>    unsigned short *a = 0;
    ((void (*)(void))a)();
</code></pre>
which may cause a jump to address 0 (usually the reset vector).<p>On R8C with the NC30 compiler there are no warnings and the output is:<p><pre><code>    MOV.W:Q #0H, -2H[FB]
    MOV.W:G -2H[FB], R0
    MOV.W:Q #0H, R2
    JSRI.A  R2R0
</code></pre>
It jumps to 0. But on PIC 16 with the XC compiler a warning is emitted <i>warning: (1471) indirect function call via a NULL pointer ignored</i> and the statement is not compiled at all.