Compartir a través de


Portabilidad en los límites de ABI

Use tipos y convenciones suficientemente portátiles en los límites de la interfaz binaria. Un "tipo portátil" es un tipo integrado de C o una estructura que contiene solo tipos integrados de C. Los tipos de clases solo se pueden usar cuando el autor y el destinatario de la llamada tienen el mismo diseño, usan la misma convención de llamada, etc. Eso solo es posible cuando se han usado el mismo compilador y la misma configuración de compilador para realizar la compilación.

Cómo acoplar una clase para la portabilidad de C

Cuando los autores de llamadas se pueden compilar con otro compilador o lenguaje, "acople" a una API externa de "C" con una convención de llamada específica:

// class widget {
//   widget();
//   ~widget();
//   double method( int, gadget& );
// };
extern "C" {        // functions using explicit "this"
   struct widget;   // opaque type (forward declaration only)
   widget* STDCALL widget_create();      // constructor creates new "this"
   void STDCALL widget_destroy(widget*); // destructor consumes "this"
   double STDCALL widget_method(widget*, int, gadget*); // method uses "this"
}

Consulte también

Aquí está otra vez C++
Referencia del lenguaje C++
Biblioteca estándar de C++