Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: bash en 24 Febrero 2016, 16:06 pm



Título: detalle sobre extern
Publicado por: bash en 24 Febrero 2016, 16:06 pm
Saludo a todos !!

estoy aprendiendo alguinas coasa pero me he confundido con algo que realmetne me tiene loco a ver si alguien por favor me aclara :


Código
  1. #ifdef __cplusplus
  2. extern "C"
  3. {
  4. #endif
  5. #include<...>
  6.  
  7. #ifdef __cplusplus
  8. }
  9. #endif

para q


Título: Re: detalle sobre extern
Publicado por: MAFUS en 24 Febrero 2016, 16:16 pm
Que me corrijan los chicos de C++ si me equivoco.

C++, debido a la sobrecarga de métodos, adorna el nombre de las funciones según el número de parámetros, su tipo y el tipo de retorno. Lo que el programador escribe en el código fuente a lo que el compilador hace en el código objeto son cosas diferentes.

Para hacer compatible las funciones que se escriban con un compilador de C++ para que las use un compilador de C existe esta estructura extern "C" que lo que hace es mantener el nombre de la función en el archivo objeto tal cual se ha escrito en el archivo fuente, así C u otro lenguaje que sea compatible con éste, cómo es python, por ejemplo, puede acceder a la función.