Forum: Mikrocontroller und Digitale Elektronik implicid declaration


von I. L. (Gast)


Angehängte Dateien:

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

von David M. (md2k7)


Lesenswert?

Darf man mal
1
void init_uc(void);

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

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


Ansonsten hilft auch die C-Doku deiner Wahl weiter.


Gruß
David

von I. L. (Gast)


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

von I. L. (Gast)


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

von David M. (md2k7)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.