??? 12/04/11 12:32 Read: times |
#185013 - C90 conformance - not C99. Responding to: ???'s previous message |
Note that the statement is about C90.
For C99 they only claim partial conformance. But there is always a big problem being 100% conformant for a "toy" processor like the 8051. You want the compiler to be as predictable as possible, based on the standard, while still producing efficient code. Too much conformance means that the C code has to generate more assembler instructions or have to have a bigger reliance on calls to helper functions. An example of this is the integer promotion rule. Keil supports it for conformance. But prefers to generate code without it, to avoid the inefficiences of updating everything to (at least) integer size before performing computations. Pointers are the next big issue, since it would be very inefficient to always convert everything into generic pointers. Some form of care will always be needed when using C on such a small target. The strength of C is that it is still possible to implement efficient programs using C on 8051-class processors. Many other languages would not get even close. |
Topic | Author | Date |
stdint.h for Keil C? | 01/01/70 00:00 | |
! StdInt.h | 01/01/70 00:00 | |
Make one | 01/01/70 00:00 | |
Ofcourse | 01/01/70 00:00 | |
SDCC's headers can be adapted | 01/01/70 00:00 | |
That's the problem... | 01/01/70 00:00 | |
So just write one! | 01/01/70 00:00 | |
Does Keil claim C99 compliance at all? | 01/01/70 00:00 | |
They have a statement on this... | 01/01/70 00:00 | |
C90 conformance - not C99. | 01/01/70 00:00 | |
I personally don't need full C99 compliance | 01/01/70 00:00 | |
Yes possible. But maybe not economical. | 01/01/70 00:00 | |
Not difficult | 01/01/70 00:00 |