informatica:sol:laboratorio11:esercitazioni:esercitazione3
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
informatica:sol:laboratorio11:esercitazioni:esercitazione3 [10/03/2011 alle 11:24 (14 anni fa)] – [Esercizio 6. Approfondiamo l'uso di valgrind (e alcune opzioni utili di gcc ...)] Susanna Pelagatti | informatica:sol:laboratorio11:esercitazioni:esercitazione3 [21/03/2011 alle 16:01 (14 anni fa)] (versione attuale) – [Esercizio 5. Approfondiamo l'uso di valgrind (e alcune opzioni utili di gcc ...)] Susanna Pelagatti | ||
---|---|---|---|
Linea 4: | Linea 4: | ||
===== Esercizio 1: Getting started -- Preprocessing, | ===== Esercizio 1: Getting started -- Preprocessing, | ||
- | 0.1) Compilare ed eseguire il seguente programma: | + | 1) Compilare ed eseguire il seguente programma: |
<code c> | <code c> | ||
#include < | #include < | ||
Linea 22: | Linea 22: | ||
Chi segnala un errore? E' fallita la fase di preprocessing, | Chi segnala un errore? E' fallita la fase di preprocessing, | ||
- | 0.2) Cosa accade se eliminiamo la linea | + | 2) Cosa accade se eliminiamo la linea |
<code c> | <code c> | ||
#include < | #include < | ||
Linea 28: | Linea 28: | ||
? A questo punto cosa va storto? Sapete interpretare i messaggi a video e stabilire chi li ha scritti e perche'? | ? A questo punto cosa va storto? Sapete interpretare i messaggi a video e stabilire chi li ha scritti e perche'? | ||
- | 0.3) Generare il modulo oggetto con | + | 3) Generare il modulo oggetto con |
< | < | ||
gcc -Wall -pedantic -c ff.c | gcc -Wall -pedantic -c ff.c | ||
Linea 35: | Linea 35: | ||
Utilizzare //objdump, nm, readelf// per capire cosa contengono la tabella di rilocazione, | Utilizzare //objdump, nm, readelf// per capire cosa contengono la tabella di rilocazione, | ||
- | 0.4) Usare l' | + | 4) Usare l' |
- | ===== Esercizio 2: Makefile per la libreria di liste ===== | ||
- | Con riferimento agli esercizi 1 e 3 della [[informatica: | ||
- | * le regole per generare correttamente main.o e lista.o | ||
- | * la regola PHONY '' | ||
- | * la regola per generare l' | ||
- | * un target PHONY '' | ||
- | utilizzare dove possibile le regole implicite, le variabili e le convenzioni viste a lezione. Usare '' | ||
- | ===== Esercizio | + | |
+ | ===== Esercizio | ||
Usare le macro con parametri per definire una macro che somma (operatore +) i propri argomenti | Usare le macro con parametri per definire una macro che somma (operatore +) i propri argomenti | ||
<code c> | <code c> | ||
Linea 58: | Linea 52: | ||
- | ===== Esercizio | + | ===== Esercizio |
Scrivere una macro con parametri che calcoli il fattoriale di un numero N, passato come parametro e ne stampi il risultato. Ad esempio, posso utilizzare la macro per calcolare il fattoriale di 4+1 con | Scrivere una macro con parametri che calcoli il fattoriale di un numero N, passato come parametro e ne stampi il risultato. Ad esempio, posso utilizzare la macro per calcolare il fattoriale di 4+1 con | ||
Linea 69: | Linea 63: | ||
FATTORIALE(FATTORIALE(4+1)) | FATTORIALE(FATTORIALE(4+1)) | ||
</ | </ | ||
- | ===== Esercizio | + | ===== Esercizio |
In questo esercizio si richiede di realizzare alcune funzioni che lavorano su liste generiche in C. Una lista generica e' rappresentata con la seguenti struct | In questo esercizio si richiede di realizzare alcune funzioni che lavorano su liste generiche in C. Una lista generica e' rappresentata con la seguenti struct | ||
Linea 128: | Linea 122: | ||
e una seconda che ha come chiavi stringhe usando analoghe funzioni per la copia ed il confronto. | e una seconda che ha come chiavi stringhe usando analoghe funzioni per la copia ed il confronto. | ||
- | ===== Esercizio | + | ===== Esercizio |
Compilare ed eseguire il codice seguente usando valgrind | Compilare ed eseguire il codice seguente usando valgrind | ||
<code c> | <code c> | ||
Linea 160: | Linea 154: | ||
Provare a compilare (dopo averlo salvato in file.c) usando le seguenti opzioni di " | Provare a compilare (dopo averlo salvato in file.c) usando le seguenti opzioni di " | ||
< | < | ||
- | bash$ bash$ gcc -O -pedantic -Wall -Wextra -Wformat=2 -ggdb -o exe file.c | + | bash$ gcc -O -pedantic -Wall -Wextra -Wformat=2 -ggdb -o exe file.c |
</ | </ | ||
viene segnato qualcosa ? Perche' | viene segnato qualcosa ? Perche' |
informatica/sol/laboratorio11/esercitazioni/esercitazione3.1299756245.txt.gz · Ultima modifica: 10/03/2011 alle 11:24 (14 anni fa) da Susanna Pelagatti