• Domingo 15 de Diciembre de 2024, 00:54

Autor Tema:  Uso De Funciones De C En C++  (Leído 1325 veces)

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Uso De Funciones De C En C++
« en: Domingo 1 de Abril de 2007, 15:42 »
0
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
  1. extern "C" void xmalloc (unsigned size);
  2.  

o en bloque:

Código: Text
  1. extern "C"
  2. {
  3.      .
  4.      .
  5.      .
  6. }
  7.  
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++?

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Uso De Funciones De C En C++
« Respuesta #1 en: Domingo 1 de Abril de 2007, 17:07 »
0
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:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Uso De Funciones De C En C++
« Respuesta #2 en: Domingo 1 de Abril de 2007, 17:52 »
0
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
  1.  
  2. void prueba(int x)
  3. {
  4.   //codigo
  5. }
  6.  
  7.  

Por ejemplo, esa funcion en C con VC++ genera el simbolo _prueba mientras que en C++ genera el simbolo ?prueba@@YAXH@Z.

http://en.wikipedia.org/wiki/Name_mangling

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Uso De Funciones De C En C++
« Respuesta #3 en: Domingo 1 de Abril de 2007, 20:13 »
0
yo lo que no entiendo a lo que se refiere cuando dice "una funcion de C", como se distingue una funcion de C y otra de C++?