¿Por qué necesitamos “C” externa {#include <foo.h>} en C ++? [duplicar

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es el efecto de la "C" externa en C ++? 13 respuestas

¿Por qué necesitamos usar:

extern "C" {
#include <foo.h>
}

Específicamente

¿Cuándo deberíamos usarlo?

¿Qué está sucediendo en el nivel del compilador / enlazador que requiere que lo usemos?

¿Cómo en términos de compilación / vinculación resuelve esto los problemas que requieren que lo usemos?

Respuestas a la pregunta(10)

Su respuesta a la pregunta