Menu
Coddy logo textTech

File sorgente

Fa parte della sezione Programmazione orientata agli oggetti del percorso C di Coddy. Lezione 3 di 61.

Finora abbiamo inserito le dichiarazioni delle funzioni nei file header, ma il codice effettivo delle funzioni (la definizione) si trovava nel file principale. Il passo successivo nella programmazione modulare è spostare queste definizioni in file sorgente (.c files).

Questo crea una struttura pulita in tre parti: l’header dichiara le funzioni, un file sorgente separato le definisce e main si limita a usarle. Ecco come appare:

// math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H

int add(int a, int b);

#endif
// math_utils.c
#include "math_utils.h"

int add(int a, int b) {
    return a + b;
}
// main.c
#include <stdio.h>
#include "math_utils.h"

int main() {
    printf("%d\n", add(5, 3));
    return 0;
}

Nota che math_utils.c include il proprio file header. Questo garantisce che la definizione della funzione corrisponda alla dichiarazione; se non corrispondono, il compilatore rileverà l’errore. Al file principale basta includere il file header per usare la funzione; non è necessario che sappia come funziona internamente add.

Questa separazione mantiene nascosti i dettagli di implementazione e ti consente di modificare la logica delle funzioni senza toccare i file che utilizzano tali funzioni.

challenge icon

Sfida

Facile

Creiamo una semplice utility matematica organizzando il codice nella corretta struttura a tre file: un header per le dichiarazioni, un file sorgente per le implementazioni e un file principale che li usa.

Creerai tre file:

  • math_ops.h: il tuo file header contenente le dichiarazioni delle funzioni per due operazioni: multiply e subtract. Entrambe le funzioni accettano due interi e restituiscono un intero. Non dimenticare di includere le protezioni usando il simbolo MATH_OPS_H.
  • math_ops.c: il tuo file sorgente contenente le implementazioni effettive di multiply e subtract. Questo file dovrebbe includere il proprio header per assicurarsi che le dichiarazioni corrispondano alle definizioni.
  • main.c: il tuo file principale che include l'header e usa entrambe le funzioni per eseguire i calcoli.

La funzione multiply dovrebbe restituire il prodotto di due interi, mentre subtract dovrebbe restituire il primo intero meno il secondo.

Riceverai due valori interi in input: a e b.

Nella funzione main, stampa i risultati di entrambe le operazioni su righe separate:

Product: {result of multiply}
Difference: {result of subtract}

Per esempio, con gli input 8 e 3, l'output sarebbe:

Product: 24
Difference: 5

Provalo tu

#include <stdio.h>
#include "math_ops.h"

int main() {
    int a, b;
    scanf("%d", &a);
    scanf("%d", &b);
    
    // TODO: Chiama la funzione multiply con a e b e memorizza il risultato
    
    // TODO: Chiama la funzione subtract con a e b e memorizza il risultato
    
    // TODO: Stampa i risultati nel formato:
    // Prodotto: {risultato di multiply}
    // Differenza: {risultato di subtract}
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore C online