C === - Compilazione con GCC - Parte 2 - Uso delle macro per definire delle costanti ``` #define PI 3.14 [...] double area = PI*r*r; ``` - Preprocessore, compilatore, assemblatore e linker ``` $ gcc -E prog.c $ gcc -S prog.c $ gcc -c prog.s $ gcc -o prog prog.o == $ gcc -o prog prog.c ``` - Compilazione con piu' file sorgenti [esempio_multiple_files] - file1.c contiene funzione `main()` - file2.c contiene funzione `hello()` - file3.c contiene definizione variabile globale `x` - file*.h (*header file*) contiene prototipo di funzioni ``` $ gcc -Wall -Wextra -o Prog file1.c file2.c file3.c oppure $ gcc -Wall -Wextra -c file1.c $ gcc -Wall -Wextra -c file2.c $ gcc -Wall -Wextra -c file3.c $ gcc -o Prog file1.o file2.o file3.o ``` - che succede se file2.c contiene una funzione main()? - Un Makefile minimale per questo esempio [v. Makefile] Assembly ======== - Introduzione a QtSpim: - Caricamento di un programma - Esecuzione, esecuzione step-by-step - Pannello dei registri - ... - Soluzione esercizio 1 - Soluzione esercizio 2