WinAVR prototype warning

Gast #177028
Lesenswert?

Einen Prototypen deklarieren. ;-) Du bist ja nicht mehr bei C < 1989.

Ansonsten steht's im Manual...  Aber ich denke, Du hast schneller den
Prototypen geschrieben (und Dir damit ohnehin einen Gefallen getan),
als das aus dem GCC-Manual gesucht. :-)
Gast #177029
Lesenswert?

Hallo!

das lästige ist, dass ich in meinen ganzen libraries und codes
hinzufügen müsst. und außerdem find ich es beuemer, keinen prototype zu
definieren, denn falls ich was an den übergabeparametern ändere, dann
muss ich es auch im prototype ändern und das ist müsahm :-)
kannst du mir sagen, wo ich dieses manual finda und unter welchem punkt
die unterdrückung der warning steht? (hab schon das ganze WinAVR
verzeichnis durchforstet und nicht das richtige gefunden)

danke,
max
Gast #177030
Lesenswert?

Dein Programmierstil erscheint mir gruselig, und deshalb habe ich auch
keine Lust, Dir den Namen der Option zu verraten. ;-)

Hast Du nicht neulich schonmal danach gefragt?

Prototypen deklariert man in einer zentralen Headerdatei (für
externe/globale Funktionen), und man deklariert sie nicht, damit sich
der Compiler nicht mehr beschwert, sondern damit der Compiler auch
eine Chance hat, einem zu sagen, wenn man Unfug zusammenprogrammiert.

Für lokale (static linkage) Funktionen kann man auf die Deklaration
von Prototypen meist ganz verzichten, wenn man die Funktion einfach
mit Prototyp definiert und in der Anordnung immer die Definition vor
der ersten Benutzung stehen hat.

"All the world's a Vax, and any integer can be interpreted as a
pointer" war im letzten Jahrtausend.
Gast #177031
Lesenswert?

... sag einfach die option, dann bin ich glücklich. klar richtigerweise
(hab ich auch in der schule so gelernt) sollten oben auch die
prototypes stehen, aber ich möchte nicht meine ganzen codes
aktualisieren müssen.
ja ich habe schon mal gepostet, hab dann nachgesehen, aber nichts
gefunden, deshalt frage ich hier nochal. zuerst hab ich nicht mal
gewusst, dass man diesen "error" abschalten kann.

also danke schon mal und schönen abend,
max
Gast #177032
Lesenswert?

Hi Max,

überleg Dir das mit den Headerfiles nochmal. Aus eigener Erfahrung kann
ich sagen, dass Fehler bzw. Unterlassen der Prototypen-Definition zu den
widerlichsten Fehlern führen kann. Die Zeit, die Du ziemlich sicher zum
Debuggen brauchst, hast Du besser in die Header investiert.

Übrigens: es ist ja nur eine Warnung, die ich nicht abschalten würde,
weil sie Dich immer wieder auf eine böse Fehlerquelle hinweist. Code
bekommst Du ja trotzdem.

Die Option zum Abschalten kenne ich leider nicht ...

Stefan
Gast #177036
Lesenswert?

also ich hab jetzt nochmal genau geschaut und bin auf die zeile "-Wall
-Wstrict-prototypes \" gestoßen. jedoch habe ich keine hanung, wie
ich diese abändern muss, um die warning zu unterdrücken (hab schon
versucht einfach rauszulöschen, hat aber nicht geklappt). kann mir da
jemand weiterhelfen?

danke und schöne grüße,
max
Gast #177037
Lesenswert?

kann mir bitte jemand weiterhelfen? -  ist ziemlich dringend... denn ich
habe beim jetzigen compiler probleme mit interrupts, die vielleicht bei
der neuen version behoben sind.

danke schon mal und schöne grüße,
max
Gast #177039
Lesenswert?

Ich sag Dir, wie Du die Warnungen ausschalten kannst: einfach die Augen
schliessen!
Ich weis auch nicht, warum Du eine Warnung ausschalten möchtest, die
Dir evtl. den Hinweis auf einen Programmierfehler in Deinen
Interruptroutinen liefert...
Gast #177043
Lesenswert?

also wenn ihr mich schon unbedinngt nicht helfen wollt, dann sagt mir
wenigstens, wo ich einen konkreten hinweis darauf finde, denn mir
vergeht's auch schon langsam. - immer nur "ungenaue" antworten, die
mich nicht weiterbringen. - ich dachte ich bin hier in einem Forum?!

max
Gast #177046
Lesenswert?

@jörg
da ich nicht in der lage bin das **** manual zu lese und nicht's
finde, kannst du sicher einen schritt weiter gehen und mir sagen, was
im manual steht (oder herauskopieren etc.), damit ich weis, was ich tun
MUSS.

mex
Gast #177048
Lesenswert?

@Marius
ich will die warning (bei der neusten version von winavr wird es eben
als error angezeigt), weil ich den code sonst nicht compilieren und
testen kann. bei der alten version (ist glaub ich 20040404), bekomme
ich 0 errors.

max
Gast #177049
Lesenswert?

Hallo Max,
Du hast jetzt schon so oft geschrieben, Deine Libraries müssen ja
riesig sein, sonst hättest Du sie ja stattdessen mit weniger Tipparbeit
schon deine Prototypen eingehämmert ... für einen Unbeteiligten ist der
Thread ein echter Schmunzler, weiter so  :-)

Gruß
Jens
Gast #177051
Lesenswert?

Hallo,

mir hat der Thread ein nächtliches Lächeln bereitet - Danke ;)

@Max:
Bist dir sicher, dass die fehlenden Prototypes den Fehler verursachen?
Hab grad ne Fkt.-Dekleration einkommentiert und avr-gcc meldet mir nur
ein warning und hat brav weiter gerechnet.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren