Profundamente en las funciones predefinidas

Quiero saber exactamente cómo funciona la biblioteca predefinida de C como Prinf (), scanf (), sin (x), abs (), etc. Cómo se definen y dónde se encuentran las funciones del cuerpo.

Si hago clic derecho en estas funciones y selecciono la definición de vista en Visual Studio, se muestra así (para printf) int __cdecl printf (_In_z_ _Printf_format_string_ const char * _Format, …);

¿Cómo puedo ver la parte interior de estas funciones?

Si su implementación se entrega con (o de otro modo hace disponible) el código fuente para su biblioteca de tiempo de ejecución, allí es donde lo encontrará.

Primero debes preguntarte si eso es necesario. El objective principal de la norma ISO es garantizar que cada implementación sea la misma máquina abstracta, independientemente del código subyacente.

Eso significa que, por lo general, solo debe codificar el estándar sin preocuparse de si, por ejemplo, qsort se implementa como una ordenación rápida, una ordenación de combinación o incluso, si no está demasiado preocupado por el rendimiento, una ordenación de burbuja o bogosort.

Solo tenga en cuenta que seguirá las reglas establecidas en la norma.


Si aún desea examinar la fuente de la biblioteca, algo como gcc usará glibc (disponible aquí ) y el código fuente de Visual C ++ también se envía con el producto. En mi versión (VS 2013), está en C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src .

Por ejemplo, ya que expresó interés en uno de sus comentarios sobre la función abs() , aquí está la variante de VC ++ de abs.c en el directorio que aparece arriba:

 int __cdecl abs (int number) { return (number >= 0 ? number : -number); } 

No hay mucho allí que sea sorprendente, pero algo como output.c , que proporciona el código común para todas las funciones de estilo printf , registra en aproximadamente dos mil quinientas líneas.