¿Se puede incluir un archivo que no sea .h con #include?

Sí, puede incluir el archivo fuente C en lugar del archivo de encabezado. Si ve una base de código grande, este truco se usa para reducir el tiempo de compilación. Hay algunas ventajas y desventajas asociadas con este enfoque que dependen principalmente de cómo lo use.

Ventajas

  • Mejoras en el rendimiento y el tamaño del código: el nivel de optimización y alineación de funciones mejorará el rendimiento y el tamaño
  • Compilación más rápida y vinculación de un solo archivo de objeto.
  • Mejor espacio de nombres menos colisiones de símbolos.

Algunas líneas de guía

  • Utilice la ocultación estática y de símbolos donde sea necesario en su fuente C.
  • Use cosas comunes en el encabezado de la interfaz.
  • Usa guardas del compilador.
  • Evite la dependencia cíclica separando sus interfaces.

Aunque las ventajas mencionadas del enfoque esto puede ser a veces bastante difícil de manejar. Puede buscar el código fuente de glibc en el siguiente enlace para encontrar tales técnicas:

glibc: nptl / pthread_create.c Archivo de origen – documentación de doxygen