www.mikrocontroller.net

Forum: GCC warning: return type defaults to 'int' ?


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Simon (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Was will mir der compiler hier sagen?
Die interrupt routine muss einen rückgabe wert haben?!


avr-gcc -c -mmcu=atxmega32a4 -I. -gstabs   -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=libs/x_uart.lst  -std=gnu99 -MD -MP -MF 
.dep/x_uart.o.d -DF_CPU=32000000L libs/x_uart.c -o libs/x_uart.o


libs/x_uart.c:70:1: warning: return type defaults to 'int'
libs/x_uart.c:70:1: warning: function declaration isn't a prototype

ISR(USARTE0_TXC_vect)
{
        if (!fifoIsEmpty(&uart_send_fifo))
                USARTE0.DATA = fifoRead(&uart_send_fifo);
}

Autor: A. K. (prx)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Es fehlt:
#include <avr/interrupt.h>

So sieht das für den Compiler aus wie die Definition einer 
altertümlichen pre-ANSI Funktion ISR mit Parametername USARTE0_TXC_vect.

Autor: Simon (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
aaaaaaaaaaaaaaaaaaaaaaaah!

Danke

Autor: Simon (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wollte nicht gleich nen neues Topic aufmachen,
worin liegt eigentlich der Unterschied zwischen

fifo->write

und

fifo.write


Wann wird hier ein Punkt oder ein -> verwendet?
typedef struct fifo
{
        uint8_t i_write;
        uint8_t i_read;
} fifo;

Autor: A. K. (prx)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Völlig unpassender Thread. Aber im einen Fall ist fifo ein Pointer auf 
eine Struktur, im anderen Fall die Struktur selbst. C Handbuch parat?

Autor: GUIler (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
fifo.write wenn fifo eine Instanz der Struktur ist

fifo->write wenn fifo ein ZEIGER auf eine Instanz der Struktur ist

Autor: Simon (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Vielen Dank, man man man ist das kompliziert.

Autor: GUIler (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
fifo->write ist übrigens äquivalent zu (*fifo).write

Autor: Simon (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
GUIler schrieb:
> fifo->write ist übrigens äquivalent zu (*fifo).write

Wie merkt man sich sowas?
ich meine da gibts ja noch mehr wie pointer auf pointer unsw..

Autor: Peter II (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Simon schrieb:
> Wie merkt man sich sowas?

gar nicht direkt, sonder man muss einfach verstehen was * und & macht, 
der rest ergibt sich dann.

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net