La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – Ver. aggiornata al 20 Luglio 2015.

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – Ver. aggiornata al 20 Luglio 2015."— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 20 Luglio 2015

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Veniamo a noi… 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice? 3

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice? 4 Umh….

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice? 5 Umh…. Meglio!

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La calcolatrice! Si scriva un programma in C che, dati due numeri, permetta all’utente di calcolarne la somma, sottrazione, moltiplicazione, e la divisione tra essi Nota: l’utente, per ogni coppia di numeri inseriti, potrà eseguire una e una sola operazione 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Quante calcolatrici? V0: tutto in un file, con funzioni V1: più file, con funzioni aritmetiche V2: più file, con funzioni aritmetiche V3: più file, con funzioni aritmetiche e funzioni di I/O V4: tutto in un file, con strutture V5: più file, con strutture, con funzioni aritmetiche e funzioni di I/O V6: creiamo una libreria 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V0 Tutto in un file, con funzioni 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V0 Tutto in un file, con funzioni 9

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V0 Tutto in un file, con funzioni 10

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1 Più file, con funzioni aritmetiche  Perché non separare i prototipi dalle implementazioni? Un conto è il cosa (prototipi) Un conto è il come (implementazioni)  In C Il cosa:.h Il come:.c 11

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Organizzazione Il cosa: IEIM_Calcolatrice.h  Contiene la descrizione di tutti i nostri prototipi Il come: IEIM_Calcolatrice.c  Contiene la descrizione di tutte le nostre funzioni 12

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 1 In IEIM_Calcolatrice.c, abbiamo un main che invoca alcune funzioni!!!  Come diciamo al main come invocare le funzioni di cui ha bisogno? 13

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 1 In IEIM_Calcolatrice.c, abbiamo un main che invoca alcune funzioni!!!  Come diciamo al main come invocare le funzioni di cui ha bisogno? 14

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 15

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 16

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 17

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V1: Problema 2 Quando compiliamo, come diciamo a IEIM_Calcolatrice.c dove si trova IEIM_Calcolatrice.h? 18

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2 Più file, con funzioni aritmetiche  Perché non separare i prototipi dalle implementazioni? Un conto è il cosa (prototipi) Un conto è il come (implementazioni)  In C Il cosa:.h Il come:.c 19

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2 Più file, con funzioni aritmetiche  Perché non separare i prototipi dalle implementazioni? Un conto è il cosa (prototipi) Un conto è il come (implementazioni)  In C Il cosa:.h Il come:.c Ma quindi… perché le implementazioni delle funzioni sono nel file del main? 20

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Organizzazione Il cosa:  IEIM_FunzioniCalcolatrice.h Contiene la descrizione di tutti i nostri prototipi Il come:  IEIM_FunzioniCalcolatrice.c Contiene la descrizione di tutte le nostre funzioni  IEIM_Calcolatrice_V2.c Contiene il main 21

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Problema Quando compiliamo, come diciamo a IEIM_Calcolatrice_v2.c dove si trovano le implementazioni?  Dobbiamo prima creare il codice oggetto per le implementazioni compilare i file con le implementazioni  Quindi compilare il main fornendogli il file oggetto delle implementazioni 22

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Soluzione Dobbiamo prima creare il codice oggetto per le implementazioni Quindi compilare il main fornendogli il file oggetto delle implementazioni 23

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Soluzione Dobbiamo prima creare il codice oggetto per le implementazioni Quindi compilare il main fornendogli il file oggetto delle implementazioni 24

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V2: Soluzione Dobbiamo prima creare il codice oggetto per le implementazioni Quindi compilare il main fornendogli il file oggetto delle implementazioni 25

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3 Più file, con funzioni aritmetiche e funzioni di I/O Se le funzioni aritmentiche sono in IEIM_FunzioniCalcolatrice.c, perché non fare lo stesso per quelle di I/O? 26

27 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Organizzazione Il cosa:  IEIM_FunzioniCalcolatrice.h Contiene la descrizione dei prototipi delle funzioni artimetiche  IEIM_FunzioniIO.h Contiene la descrizione dei prototipi delle funzioni di I/O Il come:  IEIM_FunzioniCalcolatrice.c Contiene la descrizione delle funzioni aritmetiche  IEIM_FunzioniIO.c Contiene la descrizione delle funzioni di I/O  IEIM_Calcolatrice_V3.c Contiene il main 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Compilazione Come per la V2  Prima tutti i file oggetto  Quindi l’eseguibile 28

29 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Compilazione Come per la V2  Prima tutti i file oggetto  Quindi l’eseguibile 29 gcc IEIM_FunzioniIO.c -c gcc IEIM_FunzioniAritmetiche.c -c

30 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V3: Compilazione Come per la V2  Prima tutti i file oggetto  Quindi l’eseguibile 30 gcc IEIM_FunzioniIO.c -c gcc IEIM_FunzioniAritmetiche.c -c gcc IEIM_CalcolatriceV3.c IEIM_FunzioniAritmetiche.o IEIM_FunzioniIO.o –o exe

31 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 31

32 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 32

33 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 33

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V4 Tutto in un file, con strutture 34

35 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5 Più file, con strutture, con funzioni aritmetiche e funzioni di I/O Problemi  Se le funzioni hanno bisogno di dati, come facciamo a dargli questa informazione?  Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi? 35

36 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 1 Se le funzioni hanno bisogno di dati, come facciamo a dargli questa informazione? Sfruttiamo gli include nei file di progetto!  Vediamolo nel codice… 36

37 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 2 Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi? 37

38 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 2 Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi? 38

39 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Problema 2 Se i parametri sono strutturati, e vengono passati per indirizzo, come faccio a salvare i valori nei loro campi? 39

40 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V5: Organizzazione Il cosa:  IEIM_FunzioniCalcolatrice.h Contiene la descrizione dei prototipi delle funzioni artimetiche  IEIM_FunzioniIO.h Contiene la descrizione dei prototipi delle funzioni di I/O  IEIM_Dati.h Contiene la struttura dati Il come:  IEIM_FunzioniCalcolatrice.c Contiene la descrizione delle funzioni aritmetiche  IEIM_FunzioniIO.c Contiene la descrizione delle funzioni di I/O  IEIM_Calcolatrice_V5.c Contiene il main 40

41 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V6 Ma se volessimo creare una libreria? 41 gcc IEIM_Calcolatrice_V6.c libreria.a -o exe cd CalcolatriceV6 gcc IEIM_FunzioniIO.c IEIM_FunzioniCalcolatrice.c -c ar -r libreria.a IEIM_FunzioniIO.o IEIM_FunzioniCalcolatrice.o

42 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Calcolatrice V7… per casa Più file, con strutture, con funzioni aritmetiche e funzioni di I/O Problema  Se i parametri sono strutturati, e vengono passati per copia, come faccio a salvare i valori nei loro campi? … è possibile passare per copia un dato strutturato? … è possibile ritornare un dato strutturato? Si veda il codice in CalcolatriceV7 42

43 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine 43


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – Ver. aggiornata al 20 Luglio 2015."

Presentazioni simili


Annunci Google