From: Bernhard H. <Ber...@ot...> - 2001-06-10 09:46:59
|
>// these are allowed > >int i; >short s; >unsigned short us; >short unsigned su; >short int si; >int short is; >int short unsigned isu; >short int unsigned siu; >unsigned int short uis; >unsigned short int usi; One is missing: unsigned u; And SDCC has a new problem to convert unsigned in int (and vice versa): unsigned i2u( int i ) { unsigned u; u = i; return u; } >b.c(5):warning *** indirections to different types assignment >type --> 'int ' assigned to type --> 'unsigned unknown type ' >b.c(6):warning *** 'auto' variable 'u' may be used before initialization at >b.c(6) Bernhard |
From: Bernhard H. <Ber...@ot...> - 2001-06-12 04:27:08
|
>> One is missing: >> unsigned u; > >and "signed s;" Yes, indeed ;-) >Now u and s are allowed and the problem is solved. Thanks. Don't thank me, I have to thank you. You are making good progress. Thanks! Yet another one: unsigned long ul; signed long sl; unsigned char uc; signed char sc; Yesterday I had problems with the characters, but they are gone today :-) But: unsigned a, b; b = (* (unsigned *) &a) / 3u; // *** invalid operand for 'divide' operation b = (* (unsigned int *) &a) / 3u; // ok Bernhard |
From: Johan K. <joh...@id...> - 2001-06-12 11:01:54
|
> b = (* (unsigned *) &a) / 3u; // *** invalid operand for 'divide' operation > b = (* (unsigned int *) &a) / 3u; // ok Now it should also work for functions, casts and sizeof .... Johan |
From: Johan K. <joh...@id...> - 2001-06-10 10:44:02
|
> One is missing: > unsigned u; and "signed s;" > And SDCC has a new problem to convert unsigned in int (and vice versa): Now u and s are allowed and the problem is solved. Thanks. Johan |