www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik implicid declaration


Autor: I. L. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe ein Problem mit AVR-Studio. Ich kriege diese doofe 
Fehlermeldung "implicid declaration" nicht weg. Im Anhang der Code.

Das ist nur ein Testprogramm, es würde funktionieren aber MIT Warnung.
Das muss man doch irgendie so schreiben können das diese Warnungen nicht 
auftauchen.

Kann mir bitte jemand helfen?



Gruß Knut

Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Darf man mal
void init_uc(void);

für funktionen.h vorschlagen? (also zusätzlich).

Und dann in der main.c am Anfang ein
#include "funktionen.h"
einbauen.


Ansonsten hilft auch die C-Doku deiner Wahl weiter.


Gruß
David

Autor: I. L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David Madl schrieb:
> void init_uc(void);

Das war das Problem, danke.

Wenn ich, xy.c und xy.h in meinem Programm(-Ordner) (main.c/main.h) 
drinn habe, muss ch doch nicht mehr selber includen, oder etwa doch?

Macht das dann nicht der Linker?




Gruß Knut

Autor: I. L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine C-Doku hat sagt mir leider nicht den Unterschied zwischen:

void init_uc(void);
init_uc();
oder
void init_uc();

Wie schreibt man es denn nu?

Mit void init_uc (void) meckert AVR Studio jedenfalls nicht

Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ingo L. schrieb:
> David Madl schrieb:
>> void init_uc(void);
>
> Das war das Problem, danke.
>
> Wenn ich, xy.c und xy.h in meinem Programm(-Ordner) (main.c/main.h)
> drinn habe, muss ch doch nicht mehr selber includen, oder etwa doch?
>
> Macht das dann nicht der Linker?
>
>
>
>
> Gruß Knut

Der Linker baut Binärcode zusammen und hat mit Funktionsprototypen, die 
für den Compiler bestimmt sind, nichts am Hut. Die Warnung kommt vom 
Compiler, nicht vom Linker.

> void init_uc(void);
> init_uc();
> oder
> void init_uc();
>
> Wie schreibt man es denn nu?

void init_uc(void) und void init_uc() sind identisch, init_uc() 
deklariert den Rückgabetyp als int. Da dieses Verhalten nicht wirklich 
logisch ist, schreibt man den Typ lieber immer hin.

Gruß
David

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.