Error in my C programming

Richard Sharpe rsharpe at richardsharpe.com
Sun Feb 20 16:53:16 PST 2005


On Sun, 20 Feb 2005, Michael C. Shultz wrote:

> > > > >> *** Wtrend_Drivers.c ***
> > > > >>
> > > > >> (12)void Reset_Network (unsigned char Network)
> > > > >> (13)   {
> > > > >> (14)    Length = 0x00;
> > > > >> (15)    Receiver = 0x00;
> > > > >> (16)    Node = 0xFF;
> > > > >> (17)    Command = Reset;
> > > > >> (18)    Make_Packet_Send(Head , Length, Network, Receiver,
> > > > >> Node, Command, p_Data);
> > > > >> (19)   }
> > > > >>
> > > > >> *** Wtrend_Drivers.h ***
> > > > >>
> > > > >> unsigned char Length , Network , Receiver , Node , Command =
> > > > >> 0x00;
> > > > >>
> > > > >> The above is line 9 of the Wtrend_Drivers.h
> > > > >> The numbers in () I have added to show the line numbers in
> > > > >> Wtrend_Drivers.c
> > > > >>
> > > > >> These are some of the errors I get in pairs for each of the
> > > > >> above variables:
> > > > >>
> > > > >> Wtrend_Drivers.c:15: conflicting types for `Receiver'
> > > > >> Wtrend_Drivers.h:9: previous declaration of `Receiver'

[Deletia ..]

> > > I wonder if Receiver is defined in a include file elsewhere? I
> > > checked all the header files on my system and it isn't, perhaps it
> > > is on your though? Maybe easier to rename it?
> >
> > However, the error messages point out that the conflicting definition
> > is where Receiver is first used in the function in the .c file. If it
> > was another definition, we would be told of the actual .h file where
> > the definition came from. I have seen that lots of times :-)
> >
> > Regards
>
> Your right.  We do not have enough of her code.  I tried this:
>
> #include <stdio.h>
> unsigned char Receiver = 0;
>
> int	main(void)
> {
> 	Receiver = 0x00;
> 	printf( "Receiver -=>%c\n", Receiver  );
> 	return(0);
> }
>
> compiled it with:
>
> gcc -W -Wall -ansi -pedantic -Wbad-function-cast -Wcast-align \
>                 -Wcast-qual -Wchar-subscripts -Winline \
>                 -Wmissing-prototypes -Wnested-externs -Wpointer-arith \
>               -Wredundant-decls -Wshadow -Wstrict-prototypes zz.c -o zz
>
> and no warnings....

In private correspondence with the person asking the question it was
indicated that initially GCC was used with no flags.

Regards
-----
Richard Sharpe, rsharpe[at]richardsharpe.com, rsharpe[at]samba.org,
sharpe[at]ethereal.com, http://www.richardsharpe.com


More information about the freebsd-hackers mailing list