Anda di halaman 1dari 2

Tarjeta de referencia ANSI C Constantes Control de flujo

largo (sufijo) L o l finalizador de instrucción ;


Estructura de programa/funciones real de precisión simple (sufijo) F o f delimitadores de bloque { }
tipo func(tipo 1 ,. . . ) declaración de funciones notación cientı́fica E o e salir de switch, while, do, for break
tipo nombre declaración de variables globales octal (prefijo cero) 0 siguiente iteración de while, do, for continue
main() { función principal hexadecimal (prefijo cero-equis) 0x o 0X ir a goto etiqueta
declaraciones declaración de variables locales carácter constante (char, octal, hex.) 'a', '\ooo', '\xhh' etiqueta etiqueta:
instrucciones nueva lı́nea, ret. de carro, tab., borrado \n, \r, \t, \b valor de retorno de función return expr
} caracteres especiales \\, \?, \', \" Construcciones de flujo
tipo func(arg 1 ,. . . ) { definición de función cadena constante (termina con '\0') "abc. . . de" instrucción if if (expr ) instrucción
declaraciones declaración de variables locales else if (expr ) instrucción
instrucciones
Punteros, vectores y estructuras else instrucción
return valor ; declarar un puntero a tipo tipo *nombre instrucción while while (expr )
} decl. una func. que dev. un punt. a tipo tipo *f() instrucción
/* */ comentarios decl. un punt. a func. que devuelve tipo tipo (*pf)() instrucción for for (expr 1 ; expr 2 ; expr 3 )
puntero genérico void * instrucción
main(int argc, char *argv[]) programa con argumentos instrucción do do instrucción
valor de puntero a nulo NULL while(expr );
Preprocesador de C objeto apuntado por puntero *puntero instrucción switch switch (expr ) {
incluir fichero de cabeceras #include <fichero> dirección del objeto nombre &nombre case const 1 : instrucción 1 break;
incluir fichero de usuario #include "fichero" vector nombre[dim] case const 2 : instrucción 2 break;
sustitución de texto #define nombre texto vector multidimensional nombre[dim 1 ][dim 2 ]. . . default: instrucción
Estructuras }
macro con argumentos #define nombre(var ) texto
Ejemplo. #define max(A,B) ((A)>(B) ? (A) : (B)) struct etiqueta { plantilla de estructura Bibliotecas ANSI estándar
anular definición #undef nombre declaraciones declaración de campos <assert.h> <ctype.h> <errno.h> <float.h> <limits.h>
}; <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h>
entrecomillar al reemplazar # <stddef.h> <stdio.h> <stdlib.h> <string.h> <time.h>
concatenar argumentos y reescanear ## crear estructura struct etiqueta nombre
compilación condicional #if, #else, #elif, #endif campo de estructura nombre.campo Consulta de tipos de carácter <ctype.h>
¿nombre definido, no definido? #ifdef, #ifndef campo de estructura a través de puntero puntero->campo c es un carácter
¿nombre definido? defined(nombre ) Ejemplo. (*p).x y p->x son lo mismo ¿alfanumérico? isalnum(c)
carácter de continuación de lı́nea \ estructura múltiple, valor único union ¿alfabético? isalpha(c)
campo de bits con b bits campo : b ¿carácter de control? iscntrl(c)
Tipos de datos. Declaraciones ¿dı́gito decimal? isdigit(c)
carácter (1 byte) char Operadores (según precedencia) ¿carácter imprimible (excluı́do espacio)? isgraph(c)
entero int acceso a campo de estructura nombre.campo ¿letra minúscula? islower(c)
real (precisión simple) float acceso por puntero puntero->campo ¿carácter imprimible (incl. espacio)? isprint(c)
real (precisión doble) double acceso a elemento de vector nombre[ı́ndice] ¿car. impr. excepto espacio, letra, dı́gito? ispunct(c)
corto (entero de 16 bits ) short incremento, decremento ++, -- ¿separador? isspace(c)
largo (entero de 32 bits) long más, menos, no lógico, negación bit a bit +, -, !, ~ ¿letra mayúscula? isupper(c)
positivo y negativo signed acceso por puntero, direcc. de objeto *puntero, &nombre ¿dı́gito hexadecimal? isxdigit(c)
sólo positivo unsigned convertir tipo de expresión (tipo)expr convertir a minúscula tolower(c)
puntero a int, float,. . . *int, *float,. . . tamaño de un objeto sizeof convertir a mayúscula toupper(c)
enumeración enum
valor constante (inalterable) const
producto, división, módulo (resto) *, /, % Operaciones con cadenas <string.h>
suma, resta +, - s,t son cadenas, cs,ct son cadenas constantes
declaración de variable externa extern
variable registro register desplazamiento a izda., dcha. (bit a bit) <<, >> longitud de s strlen(s)
variable estática static comparaciones >, >=, <, <= copiar ct en s strcpy(s,ct)
sin tipo void comparaciones ==, != ...hasta n caracteres strncpy(s,ct,n)
estructura struct “Y” bit a bit & concatenar ct tras s strcat(s,ct)
crear un tipo de datos typedef tipo nombre “O exclusiva” bit a bit ^ ...hasta n caracteres strncat(s,ct,n)
talla de un objeto (devuelve un size_t) sizeof objeto “O” bit a bit | comparar cs con ct strcmp(cs,ct)
talla de un tipo de datos (dev. un size_t) sizeof(tipo) “Y” lógico && ...sólo los primeros n caracteres strncmp(cs,ct,n)
“O” lógico || puntero al primer c en cs strchr(cs,c)
Inicialización puntero al último c en cs strrchr(cs,c)
expresión condicional expr 1 ? expr 2 : expr 3
Inicializar variable tipo nombre=valor copiar n caracteres de ct en s memcpy(s,ct,n)
operadores de asignación =, +=, -=, *=, ... copiar n cars. de ct en s (sobreescribe) memmove(s,ct,n)
Inicializar vector tipo nombre[]={valor 1 ,. . . }
Inicializar cadena char nombre[]="cadena " separador de evaluación de expresiones , comparar n caracteres de cs con ct memcmp(cs,ct,n)
Los operadores unarios, expresión condicional y operadores de asig- punt. al 1er c en los n 1os cars. de cs memchr(cs,c,n)
c 2002 Joseph H. Silverman Permisos en el reverso. v1.3s
nación se agrupan de dcha. a izda.; todos los demás de izda. a dcha. poner c en los n primeros cars. de cs memset(s,c,n)
Tarjeta de referencia ANSI C Funciones útiles <stdlib.h> Funciones matemáticas <math.h>
valor absoluto del entero n abs(n) los argumentos y valores devueltos son double
Entrada/Salida <stdio.h> valor absoluto del largo n labs(n) funciones trigonométricas sin(x), cos(x), tan(x)
E/S estándar cociente y resto de enteros n,d div(n,d) funciones trig. inversas asin(x), acos(x), atan(x)
flujo de entrada estándar stdin devuelve una estructura con div_t.quot y div_t.rem arctg(y/x) atan2(y,x)
flujo de salida estándar stdout cociente y resto de largos n,d ldiv(n,d) funciones trig. hiperbólicas sinh(x), cosh(x), tanh(x)
flujo de error estándar stderr devuelve una estructura con ldiv_t.quot y ldiv_t.rem exponenciales y logaritmos exp(x), log(x), log10(x)
final de fichero EOF entero pseudo-aleatorio en [0,RAND_MAX] rand() exps. y logs. (base 2) ldexp(x,n), frexp(x,*e)
obtener un carácter getchar() fijar la semilla aleatoria a n srand(n) división y resto modf(x,*ip), fmod(x,y)
imprimir un carácter putchar(car ) finalizar ejecución del programa exit(estado) potencia y raı́z pow(x,y), sqrt(x)
imprimir con formato printf("formato ",arg 1 ,. . . ) ejecutar cadena s en el sistema system(s) redondeo ceil(x), floor(x), fabs(x)
imprimir en cadena s sprintf(s,"formato ",arg 1 ,. . . ) Conversiones
convertir cadena s a double atof(s)
Lı́mites del tipo entero <limits.h>
leer con formato scanf("formato",&nombre 1 ,. . . )
convertir cadena s a int atoi(s) lı́mites tı́picos para un sistema Unix de 32 bits
leer de cadena s sscanf(s,"formato ",&nombre 1 ,. . . )
convertir cadena s a long atol(s) CHAR_BIT bits en char (8)
leer lı́nea en cadena s gets(s)
convertir prefijo de s a double strtod(s,finp) CHAR_MAX máximo valor de char (127 o 255)
imprimir cadena s puts(s)
convertir prefijo de s (base b) a long strtol(s,finp,b) CHAR_MIN mı́nimo valor de char (-128 o 0)
E/S de ficheros
igual, pero unsigned long strtoul(s,finp,b) INT_MAX máximo valor de int (+32767)
declarar puntero a fichero FILE *fp
Reserva de memoria INT_MIN mı́nimo valor de int (-32768)
obtener puntero a fichero fopen("nombre ","mode ")
reserva memoria malloc(talla), calloc(nobj,talla) LONG_MAX máximo valor de long (+2147483647)
modos: r (leer), w (escribir), a (añadir)
cambiar tamaño de la reserva realloc(pts,talla) LONG_MIN mı́nimo valor de long (-2147483648)
obtener un carácter getc(fp)
liberar memoria free(ptr) SCHAR_MAX máximo valor de signed char (+127)
escribir un carácter putc(car ,fp)
Funciones de vectores SCHAR_MIN mı́nimo valor de signed char (-128)
escribir en fichero fprintf(fp,"formato",arg 1 ,. . . )
buscar clave en vect bsearch(clave,vect,n,talla,cmp()) SHRT_MAX máximo valor de short (+32767)
leer de fichero fscanf(fp,"formato",arg 1 ,. . . )
ordenar vect ascendentemente qsort(vect,n,talla,cmp()) SHRT_MIN mı́nimo valor de short (-32768)
cerrar fichero fclose(fp)
UCHAR_MAX máximo valor de unsigned char (255)
distinto de cero si error ferror(fp)
distinto de cero si EOF feof(fp)
Funciones de hora y fecha <time.h> UINT_MAX máximo valor de unsigned int (65535)
ULONG_MAX máximo valor de unsigned long (4294967295)
leer lı́nea en cadena s (< max cars.) fgets(s,max,fp ) tiempo de proc. usado por el programa clock()
USHRT_MAX máximo valor de unsigned short (65536)
escribir cadena s fputs(s,fp) Ejemplo. clock()/CLOCKS_PER_SEC da el tiempo en segundos
Códigos de E/S con formato: "%-+ 0w.pmc" segundos desde 1/1/1.970 (hora de ref.) time() Lı́mites del tipo real <float.h>
- alineación a izquierda tpo2 -tpo1 en segs. (double) difftime(tpo2 ,tpo1 ) FLT_RADIX dı́gitos del exponente (2)
+ imprimir con signo tipos numéricos para representar horas clock_t,time_t FLT_ROUNDS modo de redondeo
space imprimir espacio si no hay signo estructura estándar usada para fecha y hora tm FLT_DIG precisión (dı́gitos decimales) (6)
0 rellenar por delante con ceros tm_sec segundos en el minuto FLT_EPSILON menor x tal que 1.0 + x 6= 1.0 (10−5 )
w anchura mı́nima del campo tm_min minutos en la hora FLT_MANT_DIG dı́gitos de la mantisa
p precisión tm_hour horas desde medianoche FLT_MAX máximo número en coma flotante (1037 )
m carácter de conversión: tm_mday dı́a del mes FLT_MAX_EXP exponente máximo
h short, l long, L long double tm_mon meses desde enero FLT_MIN mı́nimo número en coma flotante (10−37 )
c carácter de conversión: tm_year años desde 1.900 FLT_MIN_EXP mı́nimo exponente
d,i entero u sin signo tm_wday dı́as desde el domingo DBL_DIG precisión de double (dı́g. decimales) (10)
c carácter s cadena de caracteres tm_yday dı́as desde el 1 de enero DBL_EPSILON menor x t.q. 1.0 + x 6= 1.0 (double) (10−9 )
f doble e,E exponencial tm_isdst indicador del cambio de horario (verano/invierno) DBL_MANT_DIG dı́g. de la mantisa (double)
o octal x,X hexadecimal convertir hora local a hora de ref. mktime(tp) DBL_MAX máx. núm. en coma flot.(double) (1037 )
p puntero n número de caracteres escritos convertir hora en tp a cadena asctime(tp) DBL_MAX_EXP máximo exponente (double)
g,G como f o e,E según cuál sea el exponente convertir hora de ref. en tp a cadena ctime(tp) DBL_MIN mı́n. núm. en coma flot.(double) (10−37 )
convertir hora de ref. a GMT gmtime(tp) DBL_MIN_EXP mı́nimo exponente (double)
Lista variable de argumentos <stdarg.h> convertir hora de ref. a hora local localtime(tp)
declarar puntero a argumentos va_list nombre; formatear fecha y hora strftime(s,smax,"formato ",tp)
inicializar puntero a args. va_start(nombre ,ultarg ) c 2002 Joseph H. Silverman
Octubre 2002 v1.3s. Copyright
tp es un puntero a una estructura de tipo tm
ultarg es el último parámetro con nombre de la función La copia y distribución de esta tarjeta están permitidas siempre que el copy-
right y este permiso se mantengan en todas las copias.
siguiente arg. sin nom., actualizar punt. va_arg(nombre ,tipo)
invocar antes de salir de la función va_end(nombre ) Puede enviar comentarios y correcciones a J.H. Silverman, Math. Dept.,
Brown Univ., Providence, RI 02912 USA. hjhs@math.brown.edui
Traducido por F. Abad, C.D. Martı́nez, D. Picó, J.A. Sánchez

Anda mungkin juga menyukai