[elektro] Nahh, ujabb C problema
potyo
potyo.ada at gmail.com
Wed Sep 9 21:52:55 CEST 2009
Úgy próbáltad, HT PICC18-ban, hogy conf.id2.id1.a?
2009/9/9 Moczik Gabor <pm_levlista at progzmaster.hu>
> Hali!
>
> Ez a kod szerintetek legalis?
>
> --------------
> #include <stdio.h>
>
> struct prot_config_t {
> unsigned short checksum;
> union {
> #pragma pack(1)
> struct config_t {
> unsigned char a;
> unsigned char b;
> long long x64;
> } /* id1 */;
> unsigned char raw[sizeof(struct config_t)];
> } /* id2 */;
> };
>
> #define CONF_SIZE sizeof(struct config_t)
>
> struct prot_config_t conf;
>
> void main(void)
> {
> unsigned char i;
>
> conf.a = 0x11;
> conf.b = 0x22;
> conf.x64 = 0x123456789ABCDEF;
> for(i=0; i<CONF_SIZE; i++) {
> printf("%02X ",conf.raw[i]);
> }
> }
> ---------------------
>
> TCC-vel lefordul es jol mukodik
> SDCC-vel lefordul, bizonyara mukodik,
> HT PICC18 nem viszi, az 'id1' es 'id2' nelkul "no identifier in
> declaration"
> van. Ha benne van, akkor utana 'conf.a = 0x11' jellegu sornal "not a member
> of struct/union" hiba van, 'conf.id1.a' es tarsai sem fordul le.
>
> Mellesleg az id1, id2 hatasara mar a masik ket forditoval sem jo.
>
> Amint sejtheto, az lenne a lenyeg, hogy a config_t -re tudjak checksum-ot
> szamolni a conf.raw[] segitsegevel.
>
> --
> ((( Móczik Gábor )))--((( E~mail: "pm-01" @AT "progzmaster" .DOT "hu" )))
> ((( Skype: moczik )))
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list