1) El "!=" tiene más precedencia que la asignación "=".
2) El && tiene más precedencia que el ||.
Datos sobre el lenguaje C
martes, 16 de enero de 2018
Constantes simbólicas
Es muy mala práctica colocar valores numéricos como los límites de un ciclo o en cualquier otro contexto si ellos no dicen mucho para otro lector. Además, si se deseara cambiar sus valores y ellos aparecen frecuentemente en el código, habrá que buscar cada aparición de los mismos para hacer la respectiva modificación. Por lo tanto, en estos casos es conveniente definirlos al principio del programa, dándoles un nombre, y luego es ese nombre lo que se utilizará.
En general, la forma es:
# define nombre textoDeReemplazo
Por ejemplo, si el límite inferior de un ciclo es 0 y el superior es 300, colocaríamos al inicio del código:
#define LOWER 0
#define UPPER 300
Los nombres de constantes simbólicas se suelen colocar en mayúsculas para diferenciarlos de los nombres de variables. Nota que no hace falta un (;) al final de una línea "#define".
Caracteres escapados
1) \n ----> Línea nueva
2) \t -----> Tabulación
3) \b -----> Retroceso
4) \" -----> Comillas
5) \\ -----> Diagonal invertida
2) \t -----> Tabulación
3) \b -----> Retroceso
4) \" -----> Comillas
5) \\ -----> Diagonal invertida
Utilidades de las librerías
#include <stdio.h>
1) printf("Hola mundo\n");
1) malloc(n) ---> Reserva un espacio de tamaño 'n'.
1) printf("Hola mundo\n");
- %d ----> Entero.
- %nd ---> Entero con n caracteres de ancho.
- %f -----> Flotante o doble.
- %n.mf ----> Flotante con por lo menos n caracteres de ancho y m dígitos decimales. Es necesario colocar %.0f si lo que se quiere es imprimir un doble sin el punto decimal.
- %.mf ------> Flotante con m dígitos decimales sin restringir la cantidad de caracteres.
- %o ---------> Octal.
- %x ---------> Hexadecimal.
- %c --------> Carácter.
- %% -------> Porcentaje % en sí.
2) getchar() ---> Lee un carácter a la vez.
#include <stdlib.h>- Ejemplo: c = getchar()
3) putchar() ---> Escribe un carácter cada vez que se invoca.
- Ejemplo: putchar(c)
1) malloc(n) ---> Reserva un espacio de tamaño 'n'.
- Ejemplo: char *nombre = malloc(200);
Comentarios sobre el lenguaje
1) La definición de una función no puede estar anidada, pero las variables pueden estar declaradas en una modalidad estructurada por bloques.
2) C no proporciona operaciones para tratar directamente con objetos compuestos, tales como cadenas de caracteres, conjuntos, listas o arreglos.
3) No dispone de heap ni de recolector de basura.
4) No proporciona capacidades de entrada/salida, ni métodos propios de acceso a archivos. Estos mecanismos de alto nivel deben ser proporcionados por funciones llamadas explícitamente.
5) Debido a que los tipos de datos y estructuras de control provistas por C son manejadas directamente por la mayoría de las computadoras, la biblioteca de ejecución (run-time) requerida para implantar programas autocontenidos es pequeña.
6) Algunos de los operadores tienen la precedencia equivocada.
7) Si quieres calcular °C = (5/9) * (°F - 32), calcúlalo así: 5*(°F-32)/9, ya que en C la división de enteros trunca el resultado, por lo que si pusieras primero (5/9), eso se convertiría a cero.
8) Existe la coerción, por lo que si operas un flotante con un entero, el entero será convertido en flotante antes de hacerse la operación.
9) En la definición de un ciclo con "for", debes colocar primero la inicialización de la variable a iterar, luego la condición de no parada del ciclo y, por último, el paso, si es que lo hay. Estos tres campos deben ir separados por punto y coma (;). Por ejemplo:
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
10) EOF es por defecto el nombre que recibe el carácter de fin de archivo.
11) Aunque una variable vaya a ser usada para leer caracteres, podría ser conveniente declararla como entero, porque si lo que debe leer es EOF, eso podría ser más grande que el espacio almacenado para un "char".
12) Una asignación puede colocarse dentro del cuerpo de un ciclo. Por ejemplo:
while ( (c = getchar) != EOF)
13) Recuerda que en C, la función que no hace nada (skip) es un punto y coma (;).
14) Un carácter escrito entre apóstrofos representa un valor entero igual al valor numérico del carácter en el conjunto de caracteres de la máquina.
15) Puedes hacer asignaciones de la forma "var1 = var2 = var3 = 5", ya que la asignación es una expresión con un valor, y asocia de derecha a izquierda.
7) Si quieres calcular °C = (5/9) * (°F - 32), calcúlalo así: 5*(°F-32)/9, ya que en C la división de enteros trunca el resultado, por lo que si pusieras primero (5/9), eso se convertiría a cero.
8) Existe la coerción, por lo que si operas un flotante con un entero, el entero será convertido en flotante antes de hacerse la operación.
9) En la definición de un ciclo con "for", debes colocar primero la inicialización de la variable a iterar, luego la condición de no parada del ciclo y, por último, el paso, si es que lo hay. Estos tres campos deben ir separados por punto y coma (;). Por ejemplo:
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
10) EOF es por defecto el nombre que recibe el carácter de fin de archivo.
11) Aunque una variable vaya a ser usada para leer caracteres, podría ser conveniente declararla como entero, porque si lo que debe leer es EOF, eso podría ser más grande que el espacio almacenado para un "char".
12) Una asignación puede colocarse dentro del cuerpo de un ciclo. Por ejemplo:
while ( (c = getchar) != EOF)
13) Recuerda que en C, la función que no hace nada (skip) es un punto y coma (;).
14) Un carácter escrito entre apóstrofos representa un valor entero igual al valor numérico del carácter en el conjunto de caracteres de la máquina.
15) Puedes hacer asignaciones de la forma "var1 = var2 = var3 = 5", ya que la asignación es una expresión con un valor, y asocia de derecha a izquierda.
lunes, 15 de enero de 2018
Compilar y correr programas
Caso 1
Supongamos que el archivo en el que estamos escribiendo el código de nuestro programa se llama "codigo.c", y queremos que el archivo ejecutable que se cree a partir de ese código se llame "ejecutable.exe".
Aclaraciones:
1) Como pudo apreciarse, el nombre del ejecutable y el nombre del código no tienen que coincidir.
2) En Linux, los ejecutables no llevan la extensión .exe, así que no se la pongas.
3) Recuerda que no es necesario que los códigos escritos en C tengan la extensión .c
Compilar:
Con el compilador gcc, que es el que está instalado en mi Linux, debo escribir:
gcc -o ejecutable.exe codigo.c
o bien:
gcc codigo.c -o ejecutable.exe
Es decir, que no importa si colocamos primero el código o el ejecutable, pero lo que sí es importante es que al ejecutable le precederá un "-o".
Correr:
En Windows debes colocar en el terminal el nombre del ejecutable, pero sin el ".exe". Para eso debes estar en el directorio en donde se encuentra dicho ejecutable, y si no, colocas la ruta completa. También funcionará si la ruta ya está en el PATH.
En Linux debes colocar en el shell "./ejecutable". El punto se refiere al directorio actual.
Caso 2
Si no quieres que el ejecutable tenga un nombre en particular, puedes compilar el programa así:
cc codigo.c
Esto automáticamente generará un archivo llamado "a.out", y la forma de ejecutarlo en el terminal es escribiendo "./a.out".
Suscribirse a:
Entradas (Atom)