[elektro] C18... csak megkérdem.

SZIGETI Szabolcs szigiszabolcs at gmail.com
Mon Sep 29 16:27:22 CEST 2014


Két dologra tudok gondolni:
Vagy valaki valahol átdefiniálta véletlenül a void-ot valameylik .h-ban.
Vagy valamelyik általad #include-olt .h file vagy az az általunk behúzott
további .h fájl hibás.
Ilyen tipikusan akkor fordul elő, amikor mondjuk lemarad egy záró ; vagy }
(esetleg ", ) stb.) a .h fálban, és ez a fő fájlban fog bajt okozni.
Pl.:

inc.h:

struct izé { int hozé; }

main.c:

#include <inc.h>

void fv(void) { ...........


Ebből ha összolvasod akkor az lesz, hogy:
struct izé { int hozé; } void fv(void) { ...........

Ami syntax. Még rosszabb, ha afv-nek nem adsz típust, mert akko rmeg egy
struct izé visszatérésű értékű függvényed lesz, és rossz aesteben még hibát
sem kapsz fordításkor.

Szerintem a megoldás az, hogy csak a preprocesszoron hajtod át a forrást és
megnézed az eredményt. Ezt a c fordítót nem ismerem, de általában az -E
opció szokott lenni a fordítókban. Kimenetként megkapod a forrást, úgy,
hogy a define-ok, meg az include-ok behelyettesítése megtörtént. elég
olvashatalan lesz, de a rávilágíthat a problémára, ha a fentiek valamelyike
az.

Szabolcs


2014. szeptember 29. 16:15 Skandar Graun írta, <sgraun at gmail.com>:

> void cuci(void) -ra is...
>
> 2014-09-29 10:49 GMT+02:00 Móczik Gábor <pm_levlista at progzmaster.hu>:
>
> > 2014.09.29. 10:45 keltezéssel, Skandar Graun írta:
> > > És igeeen.
> > > A main.h file kapott egy
> > >
> > > void InterruptHandlerHigh(void);
> > >
> > > sort és ez már syntax error
> > >
> > > Semmi más nincs benne.
> >
> >
> > InterruptHandlerHigh nem reserved word?
> >
> > Ha mást nevet írsz, arra is?
> >
> > -----------------------------------------
> >           elektro[-flame|-etc]
> -----------------------------------------
>           elektro[-flame|-etc]


More information about the Elektro mailing list