Problem mit dem Auslagern von Funktionen

OP #6746088
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bin grade dabei mich mit dem Umgang von Funktionen vertraut zu 
machen. Um den Code kürzer halten zu können und ggf. Funktionen in 
anderen Programmen wieder verwenden zu können, wollte ich diese in einer 
externen c-datei auslagern.
Dafür sollte eine einfache Funktion "berechne", die zwei Werte 
multipliziert, ausgelagert werden.
Mein Vorgehen:

Main:
1
#include <avr/io.h>
2
#include "berechne.h"
3

4
int main(void)
5
{
6
    uint8_t Ergebnis = 0, a = 12, b = 2;
7
    while (1) 
8
    {
9
    berechne(&Ergebnis, a, b);
10
    }
11
}
.c-Datei:
1
void berechne(uint8_t *p_Ergebnis, uint8_t x, uint8_t y){
2
  *p_Ergebnis = x*y;
3
}
.h-Datei:
1
#ifndef BERECHNE_H_
2
#define BERECHNE_H_
3

4
void berechne(uint8_t *p_Ergebnis, uint8_t x, uint8_t y);
5

6
#endif /* BERECHNE_H_ */


Im Anhang habe ich Screenshots von der Fehlermeldung und dem Code 
hinterlegt. Hat irgendwer eine Idee woran es liegen könnte?
Angehängte Dateien:
Gast #6746274
Lesenswert?
• ▲
▼
Nächstes mal Quelltext bitte als Text posten, nicht als Screenshot. 
Screenshots sind meistens unvollständig und man kann den Text nicht 
heraus kopieren um das Problem nachzuvollziehen.

Es wurden auch schon Anhänge und ZIP Dateien erfunden.
Gast #6746741
Lesenswert?
• ▲
▼
Ansonsten noch für den TO, in den Headern reichen die Datentypen der 
Funktion, die Namen brauchen da nicht rein.
1
void berechne(uint8_t*, uint8_t, uint8_t);
Hätte also auch gereicht, nur muss eben der Datentyp uint8_t bekannt 
sein, also inttypes.h oder stdint.h je nach sonstigem Bedarf in den 
Header mit rein.
#6747134
Lesenswert?
• ▲
▼
nicht Gast schrieb:
> Ansonsten noch für den TO, in den Headern reichen die Datentypen der
> Funktion, die Namen brauchen da nicht rein.void berechne(uint8_t*,
> uint8_t, uint8_t);

Für den Compiler mag das reichen, für den Menschen, welcher die 
Funktionen benutzen will eher nicht! Schon gar nicht, wenn andere Leute 
sie irgendwann mal benutzen sollen.

Wer exzessiven Minimalismus praktizieren will darf gern Maschinencode 
schreiben, wahlweise auch BO8 Assembler ;-)

https://www.mikrocontroller.net/articles/8bit-CPU:_bo8

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.