De la reseña histórica no tengo ni idea, eso busca por internet, que vendrá mucho seguro. Datos: int (entero), char(caracter), double y float (numeros punto flotante uno mas decimales que el otro), unsigned(se añade a los anteriores tipos y es para indicar que es un numero sin signo), long (se añade a los anteriores tipos y es para indicar que sea de doble precision, a un char no se le puede poner long), struct (estructuras, recogen en una variable un conjunto de varias de diferentes tipos), union (un caso especial de estructuras), punteros (*) (se añade el * y significa que es una variable que apunta a un dato de ese tipo no contiene el dato en si). declaraciones de variables: int numero; char caracter; double cantidad; char* puntero; typedef struct mi_estructura { int a; char b; }; declaracion constante: #define PI 3.14159 Estructura general programa en c: Primero includes del programa, definición de constantes y funciones y variables globales, declaración de la función main, declaración de funciones y variables locales al main, código del main, definición de las funciones locales que se usen en el main, definición de las funciones locales que sean usadas por otras funciones.