SlideShare une entreprise Scribd logo
1  sur  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]

Contenu connexe

Tendances (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
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Comandos importantes en c++
Comandos importantes en c++Comandos importantes en c++
Comandos importantes en c++
 
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
 

En vedette

Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++ernestre
 
Dev c presentacion ahmad
Dev c presentacion ahmadDev c presentacion ahmad
Dev c presentacion ahmadjonnysins69
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en CRonny Parra
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++ivanjvic
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CRonny Parra
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++cemayoral
 

En vedette (10)

Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++
 
Dev c presentacion ahmad
Dev c presentacion ahmadDev c presentacion ahmad
Dev c presentacion ahmad
 
Intro dev c 2011
Intro dev c 2011Intro dev c 2011
Intro dev c 2011
 
Dev-C++
Dev-C++ Dev-C++
Dev-C++
 
Caracteres y Cadenas en C
Caracteres y Cadenas en CCaracteres y Cadenas en C
Caracteres y Cadenas en C
 
CARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE CCARACTERES Y CADENAS LENGUAJE C
CARACTERES Y CADENAS LENGUAJE C
 
Manual del dev c++
Manual del dev c++Manual del dev c++
Manual del dev c++
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 

Similaire à Curso C Ii

Similaire à 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)
 

Plus de yuli

Administracion
AdministracionAdministracion
Administracionyuli
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidadyuli
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidadyuli
 
Administracion
AdministracionAdministracion
Administracionyuli
 
SociologíA
SociologíASociologíA
SociologíAyuli
 
SociologíA
SociologíASociologíA
SociologíAyuli
 
Administracion
AdministracionAdministracion
Administracionyuli
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidadyuli
 

Plus de yuli (8)

Administracion
AdministracionAdministracion
Administracion
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidad
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidad
 
Administracion
AdministracionAdministracion
Administracion
 
SociologíA
SociologíASociologíA
SociologíA
 
SociologíA
SociologíASociologíA
SociologíA
 
Administracion
AdministracionAdministracion
Administracion
 
(6642)Contabilidad
(6642)Contabilidad(6642)Contabilidad
(6642)Contabilidad
 

Dernier

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 

Dernier (11)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 

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.