Te voy a poner un ejemplo sencillo, a ver si te convence.
#include <stdio.h>
int main(void)
{
int num1, num2, suma;
num1 = 5;
num2 = 3;
suma = num1 + num2;
printf("%d + %d = %d", num1, num2, suma);
return 0;
}
¿Qué pasa si quieres suma otros dos números?
#include <stdio.h>
int main(void)
{
int num1, num2, suma;
num1 = 5;
num2 = 3;
suma = num1 + num2;
printf("%d + %d = %dn", num1, num2, suma);
num1 = 10;
num2 = 11;
suma = num1 + num2;
printf("%d + %d = %dn", num1, num2, suma);
return 0;
}
Si quisieras sumar más números tendrías que volver a repetir el código.
#include <stdio.h>
void suma(int f_num1, int f_num2);
int main(void)
{
suma(3, 5);
suma(10, 11);
suma(2, 3);
return 0;
}
void suma(int f_num1, int f_num2)
{
int suma;
suma = f_num1 + f_num2;
printf("%d + %d = %dn", f_num1, f_num2, suma);
}
¿Ves la diferencia?
La directiva del preprocesador
#define se usa para definir constantes o cualquier sustitución de macro. Por ejemplo:
Cada vez que en el código aparezca la cadena NUM1, será sustituida por 5.
#define INICIO {
#define FIN }
Cambias los delimitadores
{ y
} por INICIO y FIN.
También se puede pasar argumentos a los macros, pero creo que si no tienes claro el concepto de función no es el momento de meternos en ésto.
Y en los archivos
.h -archivos de cabecera- no se debe incluir código. Se usan para definiciones -
#define- y para prototipos de funciones.