|
| funktioner... Fra : holst |
Dato : 02-05-02 19:51 |
|
Hej NG
Jeg er ikke helt sej til c, og kan simpelthen ikke se, hvad problemet er med
denne funktion def.:
void task1(mail_type *mail);
kompileren melder følgende fejl:
"type disagreement for 'task1'"
hvis det kan hjælpe er typedef af mail_type her:
typedef struct mail_type{
task_type sender;
task_type reciever;
unsigned char length;
boolean last;
unsigned char data;
}mail_type;
håber at nogen kan hjælpe....på forhånd tak
mvh holst
| |
Martin Moller Peders~ (02-05-2002)
| Kommentar Fra : Martin Moller Peders~ |
Dato : 02-05-02 20:21 |
|
In <aas144$l46$1@sunsite.dk> "holst" <holst@nork.auc.dk> writes:
>Hej NG
>Jeg er ikke helt sej til c, og kan simpelthen ikke se, hvad problemet er med
>denne funktion def.:
>void task1(mail_type *mail);
>kompileren melder følgende fejl:
>"type disagreement for 'task1'"
Hvordan ser selve hovedet til implementationen af task1 funktionen ud ?
/Martin
| |
holst (02-05-2002)
| Kommentar Fra : holst |
Dato : 02-05-02 20:36 |
|
"Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
news:aas3iq$107m$1@news.net.uni-c.dk...
> In <aas144$l46$1@sunsite.dk> "holst" <holst@nork.auc.dk> writes:
>
> Hvordan ser selve hovedet til implementationen af task1 funktionen ud ?
den ser således ud:
void task1(mail_type mail)
{
........bla
}
håber det kan hjælpe...
| |
Kent Friis (02-05-2002)
| Kommentar Fra : Kent Friis |
Dato : 02-05-02 20:30 |
|
Den Thu, 2 May 2002 21:36:29 +0200 skrev holst:
>
>"Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
>news:aas3iq$107m$1@news.net.uni-c.dk...
>> In <aas144$l46$1@sunsite.dk> "holst" <holst@nork.auc.dk> writes:
>>
>> Hvordan ser selve hovedet til implementationen af task1 funktionen ud ?
>
>den ser således ud:
>
>void task1(mail_type mail)
>{
>.......bla
>}
>
>håber det kan hjælpe...
>
>
void task1(mail_type *mail)
void task1(mail_type mail)
Kan du selv se forskellen? Eller skal det skæres ud i pap...
Mvh
Kent
--
The revolution has just begun.
| |
holst (02-05-2002)
| Kommentar Fra : holst |
Dato : 02-05-02 21:02 |
|
"Kent Friis" <leeloo@phreaker.net> wrote in message
news:aas44j$3e7$1@sunsite.dk...
> void task1(mail_type *mail)
> void task1(mail_type mail)
>
> Kan du selv se forskellen? Eller skal det skæres ud i pap...
>
Hov glemte *, men den er altså i koden, så det er ikke derfor....så du må
gerne skære det ud i pap
mvh
holst
| |
holst (02-05-2002)
| Kommentar Fra : holst |
Dato : 02-05-02 20:44 |
|
har fundet ud af at hvis jeg bare kalder funktionen noget andet end task1 så
virker det. Feks, med taks11...mystisk. Kan det have noget med denne typedef
at gøre, som jeg også har lavet i samme fil??
typedef enum
{
task1,
task2
}task_type;
Håber nogen kan give mig svaret på denne (for mig) besynderlighed!
"holst" <holst@nork.auc.dk> wrote in message news:aas3q4$235$1@sunsite.dk...
>
> "Martin Moller Pedersen" <tusk@daimi.au.dk> wrote in message
> news:aas3iq$107m$1@news.net.uni-c.dk...
> > In <aas144$l46$1@sunsite.dk> "holst" <holst@nork.auc.dk> writes:
> >
> > Hvordan ser selve hovedet til implementationen af task1 funktionen ud ?
>
> den ser således ud:
>
> void task1(mail_type mail)
> {
> .......bla
> }
>
> håber det kan hjælpe...
>
>
| |
Martin Moller Peders~ (02-05-2002)
| Kommentar Fra : Martin Moller Peders~ |
Dato : 02-05-02 21:05 |
|
In <aas47l$4ku$1@sunsite.dk> "holst" <holst@nork.auc.dk> writes:
>har fundet ud af at hvis jeg bare kalder funktionen noget andet end task1 så
>virker det. Feks, med taks11...mystisk. Kan det have noget med denne typedef
>at gøre, som jeg også har lavet i samme fil??
>typedef enum
>{
>task1,
>task2
>}task_type;
>Håber nogen kan give mig svaret på denne (for mig) besynderlighed!
Der er dumt og forkert at have en funktionen og en enum, der hedder det samme.
Omdoeb funktionen task1 eller lav enum'en om. F.x.
enum { task1T, task2T } task_type;
Mvh
Martin
| |
Bjarne Laursen (02-05-2002)
| Kommentar Fra : Bjarne Laursen |
Dato : 02-05-02 21:10 |
|
"holst" <holst@nork.auc.dk> wrote:
>typedef struct mail_type{
> task_type sender;
> task_type reciever;
> unsigned char length;
> boolean last;
> unsigned char data;
>}mail_type;
Jeg tror ikke du kan bruge den samme identifiere før og efter {}
Jeg mener du kan fjerne den første. Det kan man i hvert tilfælde i
c++, ellers skal den vel kaldes noget andet.
-Bjarne
| |
Byrial Jensen (02-05-2002)
| Kommentar Fra : Byrial Jensen |
Dato : 02-05-02 23:18 |
|
Bjarne Laursen <bl@pyramidedata.dk> skrev:
> "holst" <holst@nork.auc.dk> wrote:
>
>>typedef struct mail_type{
>> task_type sender;
>> task_type reciever;
>> unsigned char length;
>> boolean last;
>> unsigned char data;
>>}mail_type;
> Jeg tror ikke du kan bruge den samme identifiere før og efter {}
Det er ikke et problem for de 2 mail_type navne er i hvert sit
navnerum. C har adskilte navnerum for:
- Etiketter.
- Navne på struct'er, union'er og enum'er. Bemærk at de 3 typer
navne deler navnerum selvom syntaksen gør det nemt at skelne
mellem dem.
- Medlemmer af struct'er og union'er. Hvert struct og union udgør
sit eget navnerum for sine medlemmer.
- Alle andre navne: variabler, funktioner, enum-konstanter,
typedefinitioner. (Har jeg glemt noget?)
Det fremgår af tråden at problemet skyldtes en konflikt mellem en
enum-konstant og et funktionsnavn som altså er i samme navnerum.
| |
Bertel Lund Hansen (02-05-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 02-05-02 23:17 |
|
Bjarne Laursen skrev:
>>typedef struct mail_type{
>>...
>>}mail_type;
>Jeg tror ikke du kan bruge den samme identifiere før og efter {}
Jo, det kan man godt. Muligheden for at sætte navnet først er
nødvendigt ved en type der kalder sig selv.
--
Bertel
http://lundhansen.dk/bertel/ FIDUSO: http://fiduso.dk/
| |
Martin Dyring (02-05-2002)
| Kommentar Fra : Martin Dyring |
Dato : 02-05-02 23:12 |
|
"holst" <holst@nork.auc.dk> wrote in message news:aas144$l46$1@sunsite.dk...
> Hej NG
>
> Jeg er ikke helt sej til c, og kan simpelthen ikke se, hvad problemet er
med
> denne funktion def.:
>
> void task1(mail_type *mail);
>
> kompileren melder følgende fejl:
>
> "type disagreement for 'task1'"
>
> hvis det kan hjælpe er typedef af mail_type her:
> typedef struct mail_type{
> task_type sender;
> task_type reciever;
> unsigned char length;
> boolean last;
> unsigned char data;
> }mail_type;
Prøv med:
typedef struct mail_type{
task_type sender,
task_type reciever,
unsigned char length,
boolean last,
unsigned char data,
};
Eller mere specifikt: lad være med at instantiere variablen "mail_type" af
typen struct mail_type.. Og lav de fleste ";" om til ",".
--
Mvh,
Martin Dyring
| |
Byrial Jensen (02-05-2002)
| Kommentar Fra : Byrial Jensen |
Dato : 02-05-02 23:42 |
|
Martin Dyring <mda@image.dk> skrev:
> Prøv med:
>
> typedef struct mail_type{
> task_type sender,
> task_type reciever,
> unsigned char length,
> boolean last,
> unsigned char data,
> };
Det er et usædvanligt dårligt råd som ikke virker.
> Eller mere specifikt: lad være med at instantiere variablen "mail_type" af
> typen struct mail_type..
Der er ingen variabel - det drejer sig om en typedefintion som nu
efter dit forslag ikke får noget navn. Det er vistnok formelt set
tilladt, men giver ingen mening.
> Og lav de fleste ";" om til ",".
Det giver bare syntaksfejl med kommaer.
Rent faktisk var der intet i vejen med den typedef som du foreslår
ændret.
| |
Martin Dyring (05-05-2002)
| Kommentar Fra : Martin Dyring |
Dato : 05-05-02 12:49 |
|
"Byrial Jensen" <bjensen@nospam.dk> wrote in message
news:slrnad3g8k.1io.bjensen@ask.ask...
> Martin Dyring <mda@image.dk> skrev:
> > Prøv med:
> >
> > typedef struct mail_type{
> > task_type sender,
> > task_type reciever,
> > unsigned char length,
> > boolean last,
> > unsigned char data,
> > };
>
> Det er et usædvanligt dårligt råd som ikke virker.
Ak, det er rigtigt. Tænkte ikke over typedef'en - men det er jo så ikke det
der har været problemet alligevel. :)
--
Mvh,
Martin Dyring
| |
Thomas Lykkeberg (05-05-2002)
| Kommentar Fra : Thomas Lykkeberg |
Dato : 05-05-02 15:24 |
|
On Thu, 2 May 2002 20:50:37 +0200, "holst" <holst@nork.auc.dk> wrote:
>Hej NG
>
>Jeg er ikke helt sej til c, og kan simpelthen ikke se, hvad problemet er med
>denne funktion def.:
>
>void task1(mail_type *mail);
>
>kompileren melder følgende fejl:
>
>"type disagreement for 'task1'"
>
>hvis det kan hjælpe er typedef af mail_type her:
>typedef struct mail_type{
> task_type sender;
> task_type reciever;
> unsigned char length;
> boolean last;
> unsigned char data;
>}mail_type;
>
>håber at nogen kan hjælpe....på forhånd tak
Du har ikke vist hvor du foretager prototypen af task1 funktionen. Gør
du det før eller efter typen "mail_type" bliver defineret.
ligeledes hvis task_type er en enum, som indeholder enumereringen
'task1', ja så går det galt.
Der er jo tale om en .C kompileret fil.
/Thomas
| |
|
|