avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [avr-gcc-list] Casting


From: Nigel Winterbottom
Subject: RE: [avr-gcc-list] Casting
Date: Tue, 28 Mar 2006 13:29:29 +0100

 

> -----Original Message-----
> From: 
> address@hidden
> Sent: 28 March 2006 12:47
> To: address@hidden
> Subject: [avr-gcc-list] Casting
> 
> I am using a <long> as a parameter in which I pass various 
> entities, sort of like a mailbox. Mostly they are longs, 
> sometimes integers, and sometimes I need to pass a pointer. 
> In the latter case a cast to long does not wholly satisfy the 
> compiler (3.4.5), due to the size difference on AVRs, thus 
> giving the warning:
> 
> "cast from pointer to integer of different size"
> 
> It is only a warning and the program works fine. However I 
> would like to see a clean compile and so have been trying to 
> find a combination of casts that would promote a pointer to a 
> long, but to no avail. Does anyone have a suggestion?
> 
> Ron

Yep.

typedef union
 {
 long  a_long;
 int   an_int;
 void  *a_pointer;
 } messy_var_t;

typedef struct
 {
 messy_var_t var;
 uint8_t     tag;   //to indicate what the union (var) contains
 } parameter_t;

void fn1 (parameter_t p1)
{
blah.. ;
blah.. ;
blah.. ;
}


I didn't actually compile this but you'll get the idea, I'm sure.



Regards

Nigel Winterbotom





reply via email to

[Prev in Thread] Current Thread [Next in Thread]