Menu
Coddy logo textTech

Archivos fuente

Parte de la sección Programación Orientada a Objetos del Journey de C de Coddy. Lección 3 de 61.

Hasta ahora, hemos colocado las declaraciones de funciones en archivos de encabezado, pero el código real de las funciones (la definición) se ha encontrado en el archivo principal. El siguiente paso en la programación modular es trasladar esas definiciones a sus propios archivos fuente (archivos .c).

Esto crea una estructura limpia de tres partes: el encabezado declara las funciones, un archivo de código fuente independiente las define y main simplemente las utiliza. Así es como se ve:

// 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;
}

Observa que math_utils.c incluye su propio encabezado. Esto garantiza que la definición de la función coincida con la declaración; si no coinciden, el compilador detectará el error. El archivo principal solo necesita incluir el encabezado para usar la función; no necesita saber cómo funciona add internamente.

Esta separación mantiene ocultos los detalles de implementación y te permite modificar la lógica de la función sin tocar los archivos que usan esas funciones.

challenge icon

Desafío

Fácil

Construyamos una utilidad matemática sencilla organizando tu código en la estructura adecuada de tres archivos: un archivo de cabecera para las declaraciones, un archivo de código fuente para las implementaciones y un archivo principal que las utilice.

Crearás tres archivos:

  • math_ops.h: tu archivo de cabecera que contiene las declaraciones de las funciones para dos operaciones: multiply y subtract. Ambas funciones reciben dos enteros y devuelven un entero. No olvides incluir guardas usando el símbolo MATH_OPS_H.
  • math_ops.c: tu archivo de código fuente que contiene las implementaciones reales de multiply y subtract. Este archivo debe incluir su propia cabecera para garantizar que las declaraciones coincidan con las definiciones.
  • main.c: tu archivo principal que incluye la cabecera y utiliza ambas funciones para realizar cálculos.

La función multiply debe devolver el producto de dos enteros, y subtract debe devolver el primer entero menos el segundo.

Recibirás dos entradas enteras: a y b.

En tu función principal, imprime los resultados de ambas operaciones en líneas separadas:

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

Por ejemplo, con las entradas 8 y 3, la salida sería:

Product: 24
Difference: 5

Pruébalo tú mismo

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

int main() {
    int a, b;
    scanf("%d", &a);
    scanf("%d", &b);
    
    // TODO: Llama a la función multiply con a y b, almacena el resultado
    
    // TODO: Llama a la función subtract con a y b, almacena el resultado
    
    // TODO: Imprime los resultados en el formato:
    // Producto: {result of multiply}
    // Diferencia: {result of subtract}
    
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de C online