# Fundamentos de C - Lección 2

Un programa en C esta definido por funciones (grupo de instrucciones), donde la función principal es main.
La composición general de un programa en C es:
* Directivas de pre-procesamiento
* Declaraciones Globales
* Función main
* Comentarios
Estos elementos básicos se explicaran a continuación.

## Directivas de preproceso

Las directivas de preproceso son sentencias que situamos generalmente al inicio del código fuente. Estas directivas se caracterizan por ser líneas precedidas por el símbolo #, que es el operador de preproceso e indica que esa es una línea de control.

### #include

Le indica al compilador de C que incluya un archivo de cabecera o librería. Su sintaxis es:

### Nomenclatura básica

* #: Basta decir, provisionalmente, que se usa para dar instrucciones previas al compilador. Por ejemplo, incluir librerías de funciones en el código de nuestro programa, definir nombres o números que nunca cambiarán dentro del programa (constantes), etcétera. El uso de librerías y definiciones previas hace la escritura de programas más sencilla y estructurada, otro beneficio es que evita la necesidad de re-escribir complicadas rutinas que otras personas han escrito y probado a lo largo de mucho tiempo.
* { }: Las llaves se usan para delimitar las secciones de código que pertenecen a una función. También delimitan el dominio de instrucciones condicionales o reiterativas puesto que estas instrucciones pueden contener varias líneas de otras instrucciones dentro de sí y son en realidad funciones internas del compilador. Funcionan pues como símbolos de apertura y cierre.
* ( ): Los paréntesis tiene varias utilidades. Entre estas, especificar el orden (prioridad) en la que deben ser analizadas determinadas instrucciones. Funcionan exactamente igual a la escritura algebraica. Así (x + 2) * 3, no es lo mismo que x + 2 * 3 puesto que, para el último caso se multiplicará primero 2 * 3 y luego se sumará "x"cualquiera que sea su valor. En el primer caso, usando paréntesis, indicamos al compilador que debe sumar x + 2 y a esto se multiplicará después 3. Los paréntesis también sirven, en el mismo sentido, para delimitar los parámetros que le pasamos a una función o para establecer condiciones en estructuras condicionales o reiterativas. Son separadores.
* ;: El punto y coma delimita el final de una instrucción o línea. Es un signo de cierre y siempre debe ponerse. El único caso en que esto no se cumple es antes o después de las llaves puesto que las llaves funcionan implícitamente como signos de apertura y cierre.
* ,: La coma separa los parámetros enviados a las funciones. Es, evidentemente, un signo separador al igual que en la escritura literaria.

## Comentarios

Un buen programa debe estar bien comentado. Los comentarios serán muy útiles para que al momento de actualizar tus programas entiendas cómo funcionan.
Para escribir comentarios dentro de tus programas en C debes hacer uso de "/*" y "*/", y dentro de estos escribir tus comentarios así:
Los comentarios no pueden anidarse, por lo que cuando usas /* dentro de un comentario, el primer */ marcará el fin de comentario.
También puedes ingresar comentarios a tus programas así:
Con esta última forma debes tener especial cuidado, ya que no esta definida para el estándar C89.
Nota: Los comentarios son ignorados por el compilador al ejecutar el programa.

## Variables y Constantes

Para programar en lenguaje C necesitamos almacenar los datos con los cuales trabajaremos.

### Variables

Una variable es un nombre para identificar una posición de memoria donde el programa guarda los distintos valores que vamos a usar. En un programa debemos DEFINIR todas las variables que utilizaremos, antes de usarlas, para indicarle al compilador de qué tipo serán y cuánta memoria debe destinar para albergar a cada una de ellas.
La declaración de variables puede ser de dos ámbitos; ámbito local y ámbito global.
Variable Local: Esta variable se declara después del main, en la función en que vaya a ser utilizada y se destruye al final de esta función.
Variable Global: Esta variable se declara antes del main. Puede ser utilizada en cualquier parte del programa.
Podemos declarar una variable en C así:

### Constante

Una constante es un nombre para identificar un valor de memoria que no varía durante la ejecución del programa.
Podemos declarar una constante en C así:

### Secuencias de Escape

Ciertos caracteres no representados gráficamente se pueden representar mediante lo que se conoce como secuencia de escape.
| Secuencia de Escape | Descripción |
| \a | Sonido de alerta (Beep) |
| \b | Retroceso |
| \f | Salto de página |
| \n | Salto de línea |
| \r | Retorno de línea |
| \t | Tabulación horizontal |
| \v | Tabulación vertical |
| \\ | Contra barra |
| \? | Interrogación |
| \' | Apóstrofe |
| \" | Comillas dobles |
| \0 | Carácter nulo |
| \nnn | Número octal (nnn) |
| \xnn | Número hexadecimal (nn) |

### Modificadores de Escape

El modificador está compuesto por el carácter % seguido por un carácter de conversión, que indica de que tipo de dato se trata.
| Modificador de Escape | Descripción |
| %c | Un único carácter |
| %hd | Un entero corto |
| %hu | Un entero corto sin signo |
| %d | Un entero con signo, en base decimal |
| %ld | Un entero largo |
| %e | Un número real en coma flotante, con exponente 3e2 |
| %E | Un número real en coma flotante, con exponente en mayúscula 3E2 |
| %f | Un número real en coma flotante, sin exponente |
| %lf | Un número decimal |
| %o | Un entero en base octal |
| %p | Un puntero o dirección de memoria |
| %s | Una cadena de caracteres |
| %u | Un entero sin signo, en base decimal |
| %x | Un entero en base hexadecimal aa289 |
| %X | Un entero en base hexadecimal en mayúsculas AA289 |
* Proyecto: Programación en C
* Anterior: Fundamentos de C - Lección 1 — Fundamentos de C - Lección 2 — Siguiente: Fundamentos de C - Lección 3