| ??? 04/30/07 14:58 Read: times |
#138301 - not any more Responding to: ???'s previous message |
Erik Malund said:
Keil uses int unless told to use char and, for that reason, I thought the 'must be int' still was valid. Apparently, this is not the case anymore. See the quote from C-manual in my previous post. According to the changelog, this was introduced in C51 version 6.00. I tried the following snippet in the eval version 7.50: enum {x, y, z} ee;
main()
{
ee = y;
ee++;
ee = 1234;
}
It threw the following warning: ASDFG.C(27): warning C259: '=': different enumeration typesreferring to the line where 1234 is assigned to the enum variable ee (apparently, the variable is char so 1234 won't match); and (part of) the resulting binary (as displayed in the simulator) is: 25: ee = y;
C:0x08A3 750801 MOV ee(0x08),#0x01
26: ee++;
C:0x08A6 0508 INC ee(0x08)
27: ee = 1234;
C:0x08A8 7508D2 MOV ee(0x08),#0xD2
28: }
C:0x08AB 22 RET
JW |
| Topic | Author | Date |
| Quick C enumerated types question | 01/01/70 00:00 | |
| Not to worry i've found out anyway. | 01/01/70 00:00 | |
| What's a "quick C" | 01/01/70 00:00 | |
| The answer was..... | 01/01/70 00:00 | |
| not really | 01/01/70 00:00 | |
| as has been discussed before | 01/01/70 00:00 | |
| of course not | 01/01/70 00:00 | |
Not true | 01/01/70 00:00 | |
| C99 says | 01/01/70 00:00 | |
| more details | 01/01/70 00:00 | |
| OK | 01/01/70 00:00 | |
| not any more | 01/01/70 00:00 | |
| In C99 | 01/01/70 00:00 | |
| Enumeration type vs. constant | 01/01/70 00:00 | |
| Thanks for that everyone | 01/01/70 00:00 |



