¿En qué máquina se puede usar (* (void (*) ()) 0) ()?

C trampas y escollos 2.1 Pensé que 0 siempre es una dirección no válida. ¿Cómo podría él poner una función en esa posición?

Es dependiente de la architecture.

Del libro:

Una vez hablé con alguien que estaba escribiendo un progtwig en C que se ejecutaría de forma independiente en un pequeño microprocesador ( responda aquí ). Cuando esta máquina estaba encendida, el hardware llamaba a la subrutina cuya dirección estaba almacenada en la ubicación 0. Para simular el encendido, tuvimos que diseñar una statement en C que llamara a esta subrutina explícitamente. Después de pensarlo un poco, se nos ocurrió lo siguiente:

(*(void(*)())0)(); 

Para los microprocesadores / microcontroladores, tiene acceso directo a cualquier RAM / Flash Address a menos que esté prohibido en el hardware. Por lo tanto, acceder a la dirección 0 en el microprocesador es completamente válido.

Creo que (* (void (*)()) 0) significa que está intentando invocar una función que se encuentra en la memoria en la dirección 0x00000000 ( que probablemente sea una dirección no válida )

Una pregunta muy similar sobre stackoverflow ¿Qué significa esta statement C? puede ayudar