¿Por qué me da error el la función clrscr
?
La función clrscr
debería estar definida en la cabecera <conio.h>
, la cuál no forma parte del estándar de C, esto implica que pueden haber versiones de dicha cabecera que no dispongan de dicha función.
Si consultamos la información al respecto que nos ofrece la Wikipedia1 (resaltado mío):
conio.h (console input/output, consola de entrada/salida) es un archivo de cabecera escrito en C usado mayormente por los compiladores de MS-DOS para proveer un sistema de E/S por consola. Éste no es parte de la biblioteca estándar de C o ISO C, ni está definida por POSIX.
Las funciones de biblioteca declaradas por conio.h
varían ligeramente dependiendo el compilador. Originalmente implementada en Lattice C, las funciones eran mapeadas directamente a las primeras pocas funciones INT 21H de DOS. La biblioteca provista por Borland Turbo C no usaba la DOS API pero accedía a la memoria de vídeo directamente para la salida y usaba llamadas de interrupción de la BIOS. Esta biblioteca contiene funciones adicionales inspiradas en las funciones de Turbo Pascal.
main (void)/*porque el void?*/{
En el lenguaje c, hay tres maneras de describir los parámetros que recibirá una función:
Parámetros explícitos: La función recibirá como argumentos aquellos parámetros que se definan:
void función(int a, int b, int c);
Parámetros desconocidos: La función puede recibir un número indeterminado de argumentos de tipos indefinidos:
void función();
Sin parámetros: La función no espera ningún argumento.
void función(void);
Ese void
indica que main
no acepta argumentos.
1 Y la puntualización del maestro OscarGarcia: clrscr()
no es una función de C estándar. Es una extensión al lenguaje que se introdujo en Lattice C y se usó en el popular Borland Turbo C (la cabecera es conio.h
) y funciona únicamente en DOS/Windows.