SlideShare uma empresa Scribd logo
1 de 50
Programación en C DATSI, FI, UPM José M. Peña [email_address] (Segunda Parte)
Índice ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación en C Modificadores de Ámbito
Modificadores de Variables ,[object Object],[object Object],[object Object],[object Object],[object Object]
Modificadores de Variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modificadores de Variables ( static ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Salida: 0 1 2 3
Modificadores de Variables ( const ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modificadores de Funciones ,[object Object],[object Object],[object Object],[object Object]
Modificadores de Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fichero2.c: extern  void aux(); int main() { aux(); func() ; /* NO   VISIBLE */ }
Modificadores de Funciones Fichero1.c compilación Fichero1.o aux  Impl G func  Impl L enlace Fichero2.c compilación Fichero2.o aux  Undef  func  Undef  main  Impl G EJECUTABLE
Modificadores de Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],{ if( x+1 > y ) x = x+1 ; else x = y ; }
Programación en C Punteros y Memoria Dinámica
Aritmética de Punteros ,[object Object],[object Object],[object Object],C o l e c c i ó n  v v[7] *(p+2) for(p=v;*p;p++) { printf(“%c”,*p) }
Aritmética de Punteros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aritmética de Punteros ,[object Object],[object Object],[object Object],[object Object],p_int 3F0 p_int + 1 ++ sizeof(int)=4 3F1 3F2 3F3 3F4 3F5 3F6 3F7 3F8 3F9 3FA 3FB p_char ++ p_char + 1
Punteros a Funciones ,[object Object],[object Object],[object Object],[object Object]
Punteros a Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Punteros a Funciones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Memoria Dinámica ,[object Object],[object Object],[object Object],[object Object],[object Object]
Memoria Dinámica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],a b[0] i c b[1] a b[0] i c b[1] a b[0] i c b[1] *c *i *c Estática Dinámica
Programación en C Operadores de Bit
Operadores de Bit ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Operadores de Bit ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],00110000 00010011 a b 00010000 x = 16 00110011 y = 51 00100011 z = 35 11001111 w = 207 00001100 t = 12 10011000 s = 152
Uso de los Operadores de Bit ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación en C Preprocesador y Compilación
Fase de Compilación .c Fichero Fuente Preprocesamiento .c Paso a Ensamblador .s .o Ensamblar Compilación .o .o .o .o EXE Enlazado .a Librerías Fichero Ejecutable
Directrices del Preprocesador ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Constantes y Macros ,[object Object],[object Object],[object Object],[object Object]
Constantes y Macros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Constantes y Macros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Macros vs Funciones ,[object Object],[object Object],[object Object],[object Object],max= func_max (a++,b--); max 3 a 3 b 2 Usando funciones max= macro_max (a++,b--); max 2 a 3 b 1 Usando macros
Inclusión de Ficheros ,[object Object],[object Object],[object Object],#include “aux.h” int main() { ...} fich.c int  func1(int a); viod func2(); aux.h int  func1(int a); viod func2(); int main() { ...} Preprocesamiento
Inclusión de Ficheros ,[object Object],[object Object],[object Object],[object Object]
Sentencias Condicionales ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo: Depuración ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo: Fichero de Cabecera #ifndef _AUX_H_ #define _AUX_H_ <definiciones> #endif aux.h #include “aux.h” #include “aux.h” int main() { ... } Evita la redefinicion de funciones y variables
Enlace de Ficheros .c extern int v;  int main() {.h().} extern void k(); static h() {.k().} .c int k() {.l().} int l() {...} int v; .o 3A00: f 3A08: main 3B12: h v <undef> k <undef> .o 1600: k 17FF: l 1812: v EXE gcc -c gcc -c gcc -o Compilación Enlace
Programación en C Librerías Estándar
Manejo de Cadenas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Manejo de Buffers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entrada Salida ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ficheros Especiales ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ordenación y Búsqueda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conversión de Tipo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Funciones Matemáticas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de Funciones de Librería ,[object Object],[object Object],[object Object],[object Object]
Programación en C Argumentos del Programa
Argumentos de  main ,[object Object],[object Object],[object Object],[object Object]
Argumentos de  main ,[object Object],[object Object],int main( int argc ,  char* argv[] )   argc =5 argv[0] argv[1] argv[2] argv[3] argv[4] p r o g  u n o  d o s  t r e s  c u a t  r o
Argumentos de  main ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
diego MC
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
pedreror1
 

Mais procurados (19)

Lenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II PunterosLenguaje C para Administradores de Red - Script II Punteros
Lenguaje C para Administradores de Red - Script II Punteros
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
Libreria c++
Libreria c++Libreria c++
Libreria c++
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Curso c++
Curso c++Curso c++
Curso c++
 
Lecture 37
Lecture 37Lecture 37
Lecture 37
 
Clase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacionClase 11- fundamentos de la programacion
Clase 11- fundamentos de la programacion
 
Mynor Alexander Hernandez Canuz
Mynor Alexander Hernandez CanuzMynor Alexander Hernandez Canuz
Mynor Alexander Hernandez Canuz
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Arreglos. lidia
Arreglos. lidiaArreglos. lidia
Arreglos. lidia
 
Programación C++ - DEV C++
Programación C++ - DEV C++Programación C++ - DEV C++
Programación C++ - DEV C++
 
Apuntes generación de codigo intermedio
Apuntes generación de codigo intermedioApuntes generación de codigo intermedio
Apuntes generación de codigo intermedio
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
 
Creacion de una librería propia en C
Creacion de una librería propia en CCreacion de una librería propia en C
Creacion de una librería propia en C
 
Teoria punteros
Teoria punterosTeoria punteros
Teoria punteros
 
Punteros
PunterosPunteros
Punteros
 

Destaque (10)

Introducción a La Programación En C
Introducción a La Programación En CIntroducción a La Programación En C
Introducción a La Programación En C
 
Picaxe
PicaxePicaxe
Picaxe
 
REPLICACION DEL ADN
REPLICACION DEL ADNREPLICACION DEL ADN
REPLICACION DEL ADN
 
Sistema de picaxe
Sistema de picaxeSistema de picaxe
Sistema de picaxe
 
Manual de programacion lenguaje en C
Manual de programacion lenguaje en CManual de programacion lenguaje en C
Manual de programacion lenguaje en C
 
Introduccion a lenguaje_c
Introduccion a lenguaje_cIntroduccion a lenguaje_c
Introduccion a lenguaje_c
 
Introduccion Lenguaje C Blanca
Introduccion Lenguaje  C BlancaIntroduccion Lenguaje  C Blanca
Introduccion Lenguaje C Blanca
 
Cuaderno de prácticas robotica con Picaxe 08M2
Cuaderno de prácticas robotica con Picaxe 08M2Cuaderno de prácticas robotica con Picaxe 08M2
Cuaderno de prácticas robotica con Picaxe 08M2
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 

Semelhante a Curso c ii

Funciones C++
Funciones C++Funciones C++
Funciones C++
Jarvis_15
 
274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)
Santy Chavez
 

Semelhante a Curso c ii (20)

Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Elementos basicos de_programacion
Elementos basicos de_programacionElementos basicos de_programacion
Elementos basicos de_programacion
 
ELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdfELEMENTOS DE PROGRA 30-05.pdf
ELEMENTOS DE PROGRA 30-05.pdf
 
Turbo c
Turbo cTurbo c
Turbo c
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
Curso c i
Curso c iCurso c i
Curso c i
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)274420287 tipos-de-datos-en-c (1)
274420287 tipos-de-datos-en-c (1)
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Investigacion 1
Investigacion 1Investigacion 1
Investigacion 1
 
Clase 1- Programacion Lineal
Clase 1- Programacion LinealClase 1- Programacion Lineal
Clase 1- Programacion Lineal
 
P03.Programación en c para pics
P03.Programación en c para picsP03.Programación en c para pics
P03.Programación en c para pics
 
Elementos básicos del lenguaje
Elementos básicos del lenguajeElementos básicos del lenguaje
Elementos básicos del lenguaje
 
Introduccion a la programacion en c 1
Introduccion a la programacion en c 1Introduccion a la programacion en c 1
Introduccion a la programacion en c 1
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
 
Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)Estructura basica de_un_programa_c_ (1)
Estructura basica de_un_programa_c_ (1)
 

Curso c ii

  • 1. Programación en C DATSI, FI, UPM José M. Peña [email_address] (Segunda Parte)
  • 2.
  • 3. Programación en C Modificadores de Ámbito
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Modificadores de Funciones Fichero1.c compilación Fichero1.o aux Impl G func Impl L enlace Fichero2.c compilación Fichero2.o aux Undef func Undef main Impl G EJECUTABLE
  • 11.
  • 12. Programación en C Punteros y Memoria Dinámica
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Programación en C Operadores de Bit
  • 22.
  • 23.
  • 24.
  • 25. Programación en C Preprocesador y Compilación
  • 26. Fase de Compilación .c Fichero Fuente Preprocesamiento .c Paso a Ensamblador .s .o Ensamblar Compilación .o .o .o .o EXE Enlazado .a Librerías Fichero Ejecutable
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Ejemplo: Fichero de Cabecera #ifndef _AUX_H_ #define _AUX_H_ <definiciones> #endif aux.h #include “aux.h” #include “aux.h” int main() { ... } Evita la redefinicion de funciones y variables
  • 37. Enlace de Ficheros .c extern int v; int main() {.h().} extern void k(); static h() {.k().} .c int k() {.l().} int l() {...} int v; .o 3A00: f 3A08: main 3B12: h v <undef> k <undef> .o 1600: k 17FF: l 1812: v EXE gcc -c gcc -c gcc -o Compilación Enlace
  • 38. Programación en C Librerías Estándar
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47. Programación en C Argumentos del Programa
  • 48.
  • 49.
  • 50.