Entiendo que Linux se envía con la biblioteca ac, que implementa las funciones ISO C y las funciones de llamada al sistema, y que esta biblioteca está vinculada contra el desarrollo de C. Sin embargo, diferentes compiladores c no necesariamente producen código enlazable (ej. pad las estructuras de datos utilizadas en argumentos de funciones de forma diferente a otra). ¿Cómo se puede vincular la biblioteca c incorporada cuando podría usar cualquier compilador para compilar mi C? ¿La historia es diferente para los enlaces estáticos y dinámicos?¿Cómo funciona el enlace a las bibliotecas de SO C en Windows y Linux?
En Windows, por otro lado, cada compilador proporciona su propia biblioteca estándar, que resuelve parte del problema, pero las llamadas al sistema todavía están en un único conjunto de DLL. ¿Cómo se vinculan las aplicaciones C a estos archivos DLL con éxito? ¿Qué hay de los diferentes idiomas? (Las mismas DLL pueden ser utilizadas por pre.Net Visual Basic, etc.)
Algunas API ANSI C operan en estructuras, que son sensibles a la alineación. –