From: Marc 'BlackJack' Rintsch (marc_at_rintsch.de)
Date: 2003-02-05 22:22:19
On Wednesday 05 February 2003 21:26, 3843416 wrote: > kann sich einer vorstellen, warum folgendes programm nicht funzt ? He asks why the program doesn't work. > typedef struct{ > char color1, color2; > } ROYWINCOL_T; This defines a type but doesn't reserve any space for the struct. Add ROYWINCOL_T a; to actually have a variable named "a" of that type. > void setcharcolors(ROYWINCOL_T colors); Here you declare a function 'setcharcolors' which takes a ROYWINCOL_T struct as argument, but it's implementation isn't defined. What should happen if you call this function? > void main(void){ > setcharcolors({1,0}); > } A compiler doesn't know what to do with "{1,0}". You/it can't tell what type it is. It compiles with gcc if you cast it to ROYWINCOL_T: setcharcolors((ROYWINCOL_T){1,0}); It doesn't work in cc65. Maybe because that's a non standard way of using anonymous structs (correct term?) but I remember vaguely that cc65 can't pass structs as function parameters. So maybe you want to rewrite it this way: typedef struct{ char color1, color2; } ROYWINCOL_T; ROYWINCOL_T a; void setcharcolors(char c1, char c2) { a.color1 = c1; a.color2 = c2; } void main(void){ setcharcolors(1,0); } Ciao, Marc 'BlackJack' Rintsch -- "He who laughs last thinks slowest" ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo_at_musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-02-05 22:31:49 CET