// Datei main.c
/* code013.c ATmega88 @ 8MHz */
#include <avr/io.h>
#include "main.h"	// Bindet die Headerdatei main.h ein
#include "sub.h"	// Bindet die Headerdatei sub.h ein
#include "mult.h"	// Bindet die Headerdatei mult.h ein

int main(void)
{
	uint8_ta=4, b=2, ergebnis;
	ergebnis = addition(a, b);			// *1
	ergebnis = subtraction(a, b);		// *2
	ergebnis = multiplication(a, b);	// *3
	ergebnis = ergebnis + c;			// *4
}

uint8_t addition(uint8_t a, uint8_t b)
{
	return a+b;
}


// Datei sub.c
uint8_t subtraction (uint8_t a, uint8_t b)
{
	return a-b;
}

// Datei mult.c
uint8_t c = 10; // Die Variable c wurde in mult.h deklariert und an dieser Stelle definiert. Gleichzeitig wird sie mit dem Wert 10 initialisiert
uint8_t multiplication (uint8_t a, uint8_t b)
{
	return a*b;
}

// Datei main.h
#ifndef MAIN_H_
#define MAIN_H_
uint8_t addition (uint8_t a, uint8_t b);		// Funktionsprototyp
#endif /* MAIN_H_ */

// Datei sub.h
#ifndef SUB_H_
#define SUB_H_
uint8_t subtraction (uint8_t a, uint8_t b);		// Funktionsprototyp
#endif /* SUB_H_ */

// Datei mult.h
#ifndef MULT_H_
#define MULT_H_
extern uint8_t c;								// Durch das Schlüsselwort extern wird die Variable c deklariert
uint8_t multiplication (uint8_t a, uint8_t b);	// Funktionsprototyp
#endif /* MULT_H_ */