Programación General => C/C++ => Mensaje iniciado por: AnioN en Domingo 1 de Abril de 2007, 15:42
Título: Uso De Funciones De C En C++
Publicado por: AnioN en Domingo 1 de Abril de 2007, 15:42
hola, me parecio curioso el hecho de que para usar funciones de C en C++ haya que hacerlo de la siguiente manera.
Código: Text
extern "C" void xmalloc (unsigned size);
o en bloque:
Código: Text
extern "C"
{
.
.
.
}
Lo que no entiendo es el porque hay que hacerlo asi?, a que se refiere el hecho de usar una funcion de C en C++, el codigo no es el mismo en C++?
Título: Re: Uso De Funciones De C En C++
Publicado por: JuanK en Domingo 1 de Abril de 2007, 17:07
nunca he visto que toque usar eso en C++,
Es posible que hagan eso la función esta definida en otro archivo de código fuente o en un ensamblado diferente :huh:
Título: Re: Uso De Funciones De C En C++
Publicado por: Eternal Idol en Domingo 1 de Abril de 2007, 17:52
Para C++ el compilador/enlazador usa una decoracion para las funciones, que es lo que permite la sobrecarga, entonces para usar una funcion de C hay que indicarle que lo es sino intentara encontrar una de C++ y no lo lograra.
Código: Text
void prueba(int x)
{
//codigo
}
Por ejemplo, esa funcion en C con VC++ genera el simbolo _prueba mientras que en C++ genera el simbolo ?prueba@@YAXH@Z.