Está en la página 1de 15

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Tipos, Operadores y expresiones:

Las declaraciones muestran las variables que se van a utilizar y establecen el tipo que tienen y algunas veces cules son sus valores inciales.

Nombres de Variables:
Los nombres de variables se componen de letras y dgitos; el primer carcter debe ser una letra. Las letras maysculas y minsculas son distintas. En Gral. Se utiliza letras minsculas para nombres de variables y maysculas para constantes simblicas. Las palabras claves como if, else, etc deben escribirse con minscula.

Tipos de datos:
Nombre Significado en C Int Entero Float Punto flotante; Real Char Carcter Short Entero Corto Long Entero Largo Double Punto flotante de doble precisin; Real Largo Los calificadores short y long se aplican a enteros: Short int largo; Long int largo; El calificador signed o unsigned puede aplicarse para aumentar la cantidad de valores que puede alojar una variable en cuanto al si es positivo o negativo el valor a almacenar.

Constantes:
Una constante entera como 1234 es un int. Una constante long se escribe con una L, como 1234L. Las constantes sin signo se escriben 1234U. Las constantes de punto flotante se escriben 1234.1 Para las cadenas seria 1234. Estas cadenas poseen una constante al final aunque no se haya escrito, la constante /0 representa el carcter valor CERO. La funcin strlen() regresa la longitud de una cadena sin contar el carcter CERO. Los constantes carcter se diferencian de las cadenas en que llevan apostrofes en vez de comillas.

Conjunto de caracteres de secuencia de escape:

\a carcter de alarma \b retroceso \f avance de hoja \n nueva lnea \r regreso de carro \t tabulador horizontal

\\ diagonal invertida \? Interrogacin \ apostrofo \ comillas \000 numero octal \xhh numero hexadecimal 1

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

\tabulador vertical

Declaraciones:
Una declaracin especifica un tipo y contiene una lista de una o mas variables de ese tipo. Int largo; Una variable tambin puede ser inicializada en su declaracin: Int largo=0; Las variables estticas y externas son inicializadas en cero por omisin. El calificador const puede aplicarse a la declaracin de cualquier variable para especificar que su valor no ser cambiado. Const int largo=24;

Operadores aritmticos:
Los operadores binarios aritmticos son +,-,/,* y el operador modulo %. La divisin entera trunca cualquier parte fraccionaria. EL operador % no puede aplicarse a operandos float o double.

Operadores de relacin y lgicos:


Los operadores de relacin son > >= < <=

Todos ellos poseen la misma precedencia. De menor precedencia estn los operadores de igualdad. == != Los operadores lgicos || (o) y && (y) se evalan de izquierda a derecha y la evaluacin se termina tan pronto como se conoce el resultado verdadero o falso. La precedencia de && es mas alta que ||, y ambas son menores que los operadores de relacin. EL valor numrico de una expresin de relacin o lgica es 1 si la relacin es verdadera y 0 si la relacin es falsa. El operador unario de negacin ! convierte a un operando que no es cero en 0 y a un operando cero en uno.

Conversiones de Tipo:
Las nicas conversiones automticas son aquellas que convierten un operando angosto en uno amplio sin prdida de informacin. Un ejemplo de funcin es la funcin lower que convierte variables de tipo char a int. La conversin explicita puede ser forzada en cualquier expresin, con un operador unario llamado cast. En la construccin (nombre de tipo )expresin La expresin es convertida al tipo nombrado.

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Operadores de incremento y decremento:


El operador de aumento ++ agrega 1 a su operando, -- le resta 1. Pueden ser tanto operadores prefijos (++n) como postfijos (n++). ++n incrementa antes de que su valor se utilice y n++ despus de que se haya utilizado.

Operadores de asignacin y expresiones:


El operador += se llama operador de asignacin. Veamos un ejemplo A+=B es igual a A=A+B El mas puede ser reemplazado con cualquiera de estos operadores: +,-,*,/,<<,>>,&,|.

Expresiones condicionales:
La expresin condicional, escrita con el operador ternario ?:, significa: Expresion? A:B Donde A se ejecuta si la expresin es verdadera y B si es falsa.

Control de Flujo

Proposiciones y bloques:
Una expresin como x=0 se convierte en una proposicin cuando va seguida de un punto y coma. X=0; En C el ; es un terminador de proposicin. Las llaves {} se emplean para agrupar declaraciones y proposiciones dentro de una proposicin compuesta o bloque, de modo que son sintcticamente equivalentes a una proposicin sencilla. No hay ; despus de la llave derecha que termina un bloque.

If-else:
La proposicin if-else se utiliza para expresar decisiones. Sintaxis: If(expresin) Proposicion1; Else Proposicion2; En acaso de poseer mas de una proposicin If(expresin) { Proposicion1; 3

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Proposicion1; } Else Proposicion2;

Switch:
La proposicin switch es una decisin mltiple que prueba si una expresin coincide con uno de un nmero de valores constantes enteros y translada el control adecuadamente. Swicth (Expresion){ Case exp-const: proposiciones; break; Case exp-const: proposiciones; break; Default: proposiciones; break; } Cada case se etiqueta con uno o mas valores constantes enteros o expresiones constantes enteras. Si un case coincide con el valor de la expresin , la ejecucin comienza all. Todas las expresiones case deben ser diferentes. El etiquetado default es optativo. La proposicin Break provoca una salida inmediata del switch.

Ciclos while y for:


La expresin While posee una sintaxis como la siguiente: While() I=2; While() {I=2; J=3;} Al ser ms de una sentencia se encierran entre llaves.

Esta proposicin se ejecutara mientras que la condicin entre parntesis sea verdadera. La expresin for posee una sintaxis como la siguiente: For(largo=0;largo<=300;largo=largo+20) Printf(%d,largo); Es un ciclo. Dentro de los parntesis existen tres secciones, separadas por punto y coma. La primera la inicializacin se ejecuta una vez, antes de entrar propiamente al ciclo. La segunda seccin es la condicin o prueba que controla el ciclo: Largo<=300 Esta condicin se evalua; si es verdadera, el cuerpo del ciclo se ejecuta. Despues el incremento de avance Largo=largo+20 Se ejecuta y la condicin se vuelve a evaluar. El ciclo termina si la condicin se hace falsa. Las tres componentes de un ciclo for son expresiones, cualquiera de las tres se puede omitir, pero se debe escribir un ;. El for de sintaxis F(;;) es un for infinito.

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Ciclos do while:
El do while prueba al final despus de realizar cada paso a travs del cuerpo del ciclo, el cual se ejecuta por lo menos siempre una vez. La sintaxis es: Do Proposicin While expresin;

Break y Continue:
La proposicin break proporciona una salida anticipada de un for,while y do, tal como lo hace en el switch. La proposicin continue provoca que se inicie la siguiente iteracin del ciclo for, while, do que la contiene.

Goto y etiquetas:
C proporciona la infinitamente abusable proposicin goto, y etiquetas para saltar hacia ellas. Ejemplo: For() ,.. If() Goto error; }

Error: proposicin:
Una etiqueta tiene la misma forma que un nombre de variable y es seguida por dos puntos. El alcance de una etiqueta es toda la funcin.

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Funciones y la estructura del programa

Conceptos bsicos de funciones:


Cada definicin de funcin tiene la forma: Tipo-regresado nombre-de-funcin (declaraciones de argumentos) { Declaraciones y proposiciones } Varias partes pueden omitirse una funcin mnima es Nada(){} Que no hace ni regresa nada. SI se omite que regresa se supone int. Un programa es solo un conjunto de definiciones de variables y funciones. La comunicacin entre las funciones es por argumentos y valores regresados por las funciones, y a travs de variables externas. Las funciones pueden presentarse en cualquier orden dentro del archivo fuente. La proposicin return es el mecanismo para que la funcin que se llama regrese un valor a su invocador. Al return le puede seguir cualquier expresin: Ejemplo Return expresin La expresin se convertir al tipo de retorno de la funcin si es necesario. La funcin que llama tiene la libertad de ignorar el valor regresado. Tambin el control regresa, sin valor, cuando la ejecucin llega a la llave de cierre. Si se quiere que una funcin no regrese ningn valor se debe poner VOID antes del nombre de la funcin. En cualquier caso si una funcin no regresa explcitamente un valor entonces su valor es basura. La principal funcin de un programa es la funcin Main(){}

Variables externas:
Si un gran nmero de variables se deben compartir entre funciones entonces se recomienda utilizar variables externas. Las variables externas son permanentes. Estas se definen en el cuerpo del main() antes de referenciar a las funciones. Si se va a hacer referencia a una variable externa antes de su definicin, o si est definida en un archivo fuente diferente al que se est utilizando, entonces es obligatoria la declaracin extern. La declaracin static limita el alcance de ese objeto al resto del archivo fuente que se est compilando.

Variables de tipo registr:


Una declaracin register indica al compilador que la variable en cuestin se empleara intensamente. La idea es que las variables register se coloquen en registros de la maquina, lo que puede dar como resultado programas ms pequeos y rpidos. La declaracin register solo se puede aplicar a variables automticas y a loa parmetros formales de una funcin. F(register m) 6

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

{ register int i; .. }

Inicializacin:
En ausencia de una inicializacin explicita, se garantiza que las variables externas y estticas se inicializaran en cero; las variables automticas y tipo registro tienen valores inciales indefinidos (basura). Un arreglo puede ser inicializado al seguir su declaracin con una lista de inicializadores encerrados entre llaves{} y separados por comas. Ejemplo int das[]={1,2,3} Cuando se omite el tamao de un arreglo, el compilador calculara la longitud contando los inicializadores, 3 en este caso.

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Apuntadores y arreglos
Un apuntador es una variable que contiene la direccin de una variable.

Apuntadores y direcciones:
Una maquina tpica tiene un arreglo de celdas de memoria numeradas o direccionadas consecutivamente, que pueden manipularse individualmente o en grupos contiguos. Una situacin comn es que en cualquier byte puede ser un char, un par de celdas de un byte pueden tratarse como un entero short, y cuatro bytes adyacentes forman un long. UN apuntador es un grupo de celdas que pueden mantener una direccin. El operador unario & da la direccin de un objeto, de modo que la proposicin. P=&c; Asigna la direccin de c a la variable p, y se dice que p apunta a c. El operador & solo se aplica a objetos que estn en memoria: variables y elementos de arreglos. No puede aplicarse a expresiones, constantes o variables de tipo registro. EL operador unario * es el operador de indireccion o desferencia; cuando se aplica a un apuntador, da acceso al objeto al que seala el apuntador. La declaracin del apuntador ip, Int *ip; Funciona como mnemnico; dice que la expresin *ip es un int. La sintaxis de la declaracin para una variable imita la sintaxis de expresiones en las que la variable puede aparecer. Tambien se debe notar la implicacin que tiene el hecho de que un apuntador esta restringido a sealar a una clase particular de objeto: cada apuntador seala a un tipo especifico de datos. Ejemplo: (*ip)++ Los parntesis son necesarios en este ultimo ejemplo; sin ellos, la expresin encrementaria ip en lugar de a lo que apunta, debido a que los operadores unarios como * y ++ se asocian de derecha a izquierda. Ejemplo: Iq=ip SI iq es otro apuntador a int, copia el contenido de ip en iq; asi, hace que iq apunte a lo que ip esta apuntando.

Apuntadores y argumentos de funciones:


Puesto que C pasa los argumentos de funciones por valor, no existe una forma directa para que la funcin que se invoca altere una variable de la funcin que la llama. La nica forma de obtener los resultados que se desean es que el programa invocador pase apuntadores a los valores que se cambiaran: Largo(&a,&b); Puesto que el operador & produce la direccin de una variable ,&a es un apuntador a a. Dentro de la misma funcin Largo , los parmetros se declaran para ser apuntadores, y se tiene acceso a los operandos indirectamente a travs de ellos. 8

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Void largo (int *px, int * pi) { int temp; Temp= *px; *px=*py; *py=temp; } Los argumentos tipo apuntador permitena una function tener acceso y cambiar objetos que estan en la function que la llamo.

Apuntadores y arreglos:
Cualquier operacin que pueda lograrse por indexacin de un arreglo tambin puede realizarse con apuntadores. La declaracin Int a[10]; Define a un arreglo de tamao 10, esto es un bloque de 10 objetos consecutivos llamados a*0+,a*1+,,a*9+. Ejemplo: pa=&a[1]; Hace que pa apunte al elemento 1 de a ; esto es pa contiene la direccin de a[1]. Ahora la asignacin X=pa*; Copiara el contenido de a[1] en x. Si pa apunta a un elemento en particular de un arreglo, entonces por definicin pa + 1 apunta al siguiente elemento , pa +i apunta i elementos despus de pa, y pa-i apunta i elementos antes. Por definicion, el valor de una variable o expresin de tipo arreglo es la direccin del elemnto cero del arreglo. Puesto que el nombre de un arreglo es un sinnimo para la localidad del elemento inicial, la asignacin pa=&a[0] puede escribirse tambin como Pa=a Una referencia a a[i]tambin puede escribirse como *(a+i), esto deriva de que &a[i] y a+i tambin son idnticas. Tambien si pa es un apuntador, las expresiones pueden usarlo con un subndice; pa[i] es idntico a *(pa+i). Existe una diferencia entre un nombre de arreglo y un apuntador, que debe tenerse en mente. UN apuntador es una variable, por esto pa=a y pa++ son legales. Pero un nombre de arreglo no es una variable; construccines como a=pa y a++ son ilegales. Cuando un nombre de arreglo se pasa a una funcin, lo que se pasa es la localidad del elemento inicial. Un parmetro de nombre de arreglo es un apuntador. Por esto char s[]; y char *s ; son equivalentes. Es posible pasar parte de un arreglo a una funcin, pasando un apuntador al inicio del subarreglo. Por ejemplo, si a es un arreglo. F(&a[2]) y f(a+2) ambas pasan a la funcin f la direccin del subarreglo que inicia en a[2]. Si esta seguro de que los elementos existen, tambin es posible indexar hacia atrs en un arreglo; p[-1], p[-2], etc., son legtimos desde el punto de vista sintctico.

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Aritmtica de direcciones:
Si p es un apuntador a algn elemento de un arreglo, entonces p++ incrementa p para apuntar al siguiente elemento y p+=i la incrementa para apuntar i elementos delante de donde actualmente lo hace.

Apuntadores a caracteres y funciones:


Una constante de cadena, soy una cadena Es un arreglo de caracteres. En la representacin interna, el arreglo termina con el carcter nulo \0, de tal manera que los programas puedan encontrar el fin. La longitud de almacenamiento es asi uno mas que el numero de caracteres entre comillas. Se tiene acceso a una cadena constante por un apuntador a su primer elemento. Por ejemplo si pmessage se declara como Char *pmessage; entonces la proposicin pmessage=ya es el tiempo; asigna a pmessage un apuntador al arreglo de caracteres. El lenguaje C no proporciona ningn operador para procesar como unidad a una cadena de caracteres. Existe una importante diferencia entre estas definiciones: Char amessage*+=ya es el tiempo; --Arreglo Char * pmessage=ya es el tiempo; -- Apuntador Amessage es un arreglo, suficientemente grande como para contener la secuencia de caracteres y el \0 que lo inicializa. Por otro lado, pmessage es un apuntador, inicializado para apuntar a una cadena constante, el apuntador puede modificarse posteriormente para que apunte a algn otro lado, pero el resultado es indefinido si trata de modificar el contenido de la cadena. Muchas de las funciones de C lo nico que hacen es copiar apuntadores de una variable a otra y no los caracteres que contienen las cadenas. Para poder copiar caracteres por caracteres en el caso de las cadenas hay que referenciar los apuntadores. Ej *p=*s;

Arreglos de apuntadores; apuntadores a apuntadores:


Puesto que en si mismos los apuntadores son variables, pueden almacenarse en arreglos tal como otras variables. Ejemplo: char *largo[10]

Arreglos multidimensionales:
EN C, un arreglo de dos dimensiones es en realidad un arreglo unidimensional, cada uno de cuyos elementos es un arreglo. Por ello, los subndices se escriben como Largo[i][j] --[Renglon][Columna]. Un arreglo se inicializa con ua lista de inicializadores entre llaves; cada rengln de un arreglo de dos dimensiones se inicializa con una sublista. Si un arreglo de dos dimensiones se pasa a una funcin, la declaracin de parmetros en la funcin debe incluir el numero de columnas; el numero de renglones es irrelevante. 10

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Estructuras
Una estructura es una coleccin de una o ms variables, de tipos posiblemente diferentes, agrupadas bajo un solo nombre para manejo conveniente. Las estructuras se denominan Records. Las estructuras se pueden copiar y asignar, pasar a funciones y ser regresadas por funciones. Las estructuras tambin se pueden inicializar.

Conceptos bsicos sobre estructuras:


Declaracin: Struct largo{ Int x; Int y; }; La palabra reservada STRUCT presenta la declaracin de una estructura , que es una lista de declaraciones entre llaves. Un nombre optativo llamado rotulo de estructura, puede seguir a la palabra struct. El rotulo da nombre a esta clase de estructura, y en adelante puede ser utilizado como una abreviatura para la parte de declaraciones entre llaves. Las variables nombradas dentro de la estructura se llaman miembros. Un miembro de estructura o rotulo, y una variable ordinaria (esto es, no miembro) pueden tener el mismo nombre sin conflicto. Una declaracin struct define un tipo. La llave derecha que termina la lista de miembros puede ser seguida por una lista de variables. Ejemplo: struct ,-x,y,z; Cada proposicin declara a x,y,z como variables del tipo nombrado y causa que se les reserve espacio contiguo. Una declaracin de estructura que no esta seguida por una lista de variables no reserva espacio de almacenamiento sino que simplemente describe una plantilla o la forma de una estructura. Una estructura se puede inicializar al seguir su definicin con una lista de inicializadores, cada uno con una expresin constante. Una estructura automtica tambin se puede inicializar por asignacin o llamando a una funcin que regresa una estructura del tipo adecuado. Se hace referencia a un miembro de una estructura de la siguiente forma: Nombre-estructura.miembro El operador miembro de estructura. Conecta al nombre de la estructura con el nombre del miembro. Las estructuras pueden anidarse. Por ejemplo: Struct Rect{ Struct punto1 p1; Struct punto2 p2; }; La estructura contiene dos estructuras punto. Si definimos una variable de tipo Struct Rect Struct rect visor; Para referenciar a un miembro haremos: Visor.punto1.x 11

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Estructuras y funciones:
Las nicas operaciones legales sobre una estructura son copiarlas y asignarlas como unidad, tomar su direccin con &, y tener acceso a sus miembros. La copia y la asignacin incluyen pasarlas como argumentos a funciones y tambin regresar valores de funciones. Se pueden pasar separadamente los componentes, pasar una estructura completa o pasar un apuntador a ella. Si una estructura grande va a ser pasada a una funcin, generalmente es mas eficiente pasar un apuntador que copiar la estructura completa. La declaracin Struct punto *pp; Dice que pp es un apuntador a una estructura de tipo struct Punto y que (*pp).x y (*pp).y son los miembros.

Arreglos de estructuras:
La declaracin de estructura Struct llave{ Char *Word; Int cont; }; Struct llave arreglollave[10]; Declara un tipo de estructura llave, define un arreglo arreglollave de estructuras de este tipo, y reserve un espacio de alamcenamiento para ellas.

Sizeof:
El operador unario llamdo sizeof se puede emplear para calcular el tamao de cualquier objeto. Las expresiones sizeof objeto y sizeof(nombre de tipo) dan un entero igual al tamaa en bytes del tipo u objeto especificado.

Existen otro conceptos de inters como entrada y salida de archivos, Typedef , Uniones, etc los cuales quedan para ser investigados por el alumnos.

12

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Libreras estndar de C y las funciones que contiene cada una.


stdio.h ctype.h string.h math.h stdlib.h assert.h setjmp.h signal.h time.h

Input and Output: <stdio.h>


FILE *fopen(const char *filename, const char *mode) FILE *freopen(const char *filename, const char *mode, FILE *stream) int fflush(FILE *stream) int fclose(FILE *stream) int remove(const char *filename) int rename(const char *oldname, const char *newname) FILE *tmpfile(void) char *tmpnam(char s[L_tmpnam]) int setvbuf(FILE *stream, char *buf, int mode, size_t size) void setbuf(FILE *stream, char *buf) int fprint(FILE *stream, const char *format, ) int sprintf(char *s, const char *format, ) vprintf(const char *format, va_list arg) vfprintf(FILE *stream, const char *format, va_list arg) vsprintf(char *s, const char *format, va_list arg) int fscanf(FILE *stream, const char *format, ) int scanf(const char *format, ) int sscanf(char *s, const char *format, ) int fgetc(FILE *stream) char *fgets(char *s, int n, FILE *stream) int fputc(int c, FILE *stream) int fputs(const char *s, FILE *stream) int getc(FILE *stream) int getchar(void) char *gets(char *s) int putc(int c, FILE *stream) int putchar(int c) int ungetc(int c, FILE *stream) size_t fread(void *ptr, size_t size, size_t nobj, FILE *stream) size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *stream) int fseek(FILE *stream, long offset, int orogin) long ftell(FILE *stream) void rewind(FILE *stream) int fgetpos(FILE *stream, fpos_t *ptr) int fsetpos(FILE *stream, const fpos_t *ptr) void clearerr(FILE *stream) int feof(FILE *stream) int ferror(FILE *stream) void perror(const char *s)

13

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Character Class Tests: <ctype.h>


isalnum(c) isalpha(c) iscntrl(c) isdigit(c) isgraph(c) islower(c) isprint(c) ispunct(c) isspace(c) isupper(c) isxdigit(c)

String Functions: <string.h>


char *strcpy(s , ct) char *strncpy(s , ct , n) char *strcat(s , ct) char *strncat(s , ct , n) int strcmp(cs , ct) int strncmp(cs , ct ,n) char *strchr(cs , c) char *strrchr(cs , c) size_t strspn(cs , ct) size_t strcspn(cs , ct) char *strstr(cs , ct) size_t strlen(cs) char *strerror(n) char *strtok(s , ct)

Mathematical Functions: <math.h>


sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) atan2(x) sinh(x) cosh(x) tanh(x) exp(x) log(x) log10(x) pow(x,y) sqrt(x) ceil(x) floor(x) fabs(x) ldexp(x) frexp(x,double *ip) modf(x,double *ip) fmod(x,y)

14

Manual de Introduccin al Lenguaje C

Introduccin a la Informtica

Prof.: Gerci Walter

Utility Functions: <stdlib.h>


double atof(const char *s) int atoi(const char *s long atol(const char *s) double strrod(const char *s, char **endp) long strtol(const char *s, char **endp, int base) unsigned long strtoul(const char *s, char **endp, int base) int rand(void) void srand(unsigned int seed) void *calloc(size_t nobj, size_t size) void *malloc(size_t size) void *realloc(void *p, size_t size) void free(void *p) void abort(void) void exit(int status) int atexit(void (*fcn)(void)) int system(const char *s) char *getenv(const char *name) void *bsearch(const void *key, const void *base, size_t n, size_t size, int (*cmp)(const void *keyval, const void *datum)) void qsort(void *base, size_t n, size_t size, int (*cmp)(const void *, const void *)) int abs(int n) long labs(long n) div_t div(int num, int denom) ldiv_t ldiv(long num , long denom)

Diagnostics: <assert.h>
void assert(int expression)

Non-local Jumps: <setjmp.h>


int setjmp(jmp_buf env) void longjmp(jmp_buf env, int val)

Signals: <signal.h>
void (*signal(int sig, void (*handler)(int)))(int)

Data and Time Functions: <time.h>


clock_t clock(void) time_t time(time_t , *tp) double difftime(time_t time2 , time_t time1) time_t mktime(struct tm *tp) char *asctime(const time_t *tp) char *ctime(const time_t *tp) struct tm *gmtime(const time_t *tp) struct tm *localtime(const time_t *tp) size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp)

15

También podría gustarte