??? 09/10/07 10:46 Read: times |
#144277 - The C language Responding to: ???'s previous message |
The C language uses the dot to access members of struct and union. These members must have an identifier and identifiers are not allowed to start with a digit.
You could however do something like this while staying within the language restrcitions: typedef union { struct { int b0:1; //use bitfields to access the bits int b1:1; int b2:1; int b3:1; int b4:1; int b5:1; int b6:1; int b7:1; } bits; //in C99 it's allowed to leave this identifier out unsigned char byte; } SfrByte; SfrByte P0; P0.byte = 0; //access the whole byte P0.bits.b0 = 0; //access bit0 P0.b1 = 0; //access bit1 in C99 anonymous structThis is kind of the approach IAR took in their newer versions of their compiler. There is nothing in the way of extending the C language to support struct member identifiers containing a starting digit. But it is an extension. Then again so are the keywords 'data', 'xdata', 'code', etc. And the solution Keil chose to access bits does violate the C language IMHO: sbit P0_1 = P0^1; //to me this means P0_1 is initialized with P0 XOR 1Maarten |
Topic | Author | Date |
8051 in C programming | 01/01/70 00:00 | |
Read the manual! | 01/01/70 00:00 | |
Not in Keil | 01/01/70 00:00 | |
an old IAR compiler | 01/01/70 00:00 | |
is there any fundamental problem... | 01/01/70 00:00 | |
The C language | 01/01/70 00:00 | |
structures | 01/01/70 00:00 | |
A Non Standard Extension | 01/01/70 00:00 | |
just don't use it | 01/01/70 00:00 | |
Similar problem | 01/01/70 00:00 | |
Time | 01/01/70 00:00 | |
Read The Manual (sometimes abbreviated to RTFM)! | 01/01/70 00:00 | |
silicon laboratories | 01/01/70 00:00 | |
Compiler? | 01/01/70 00:00 | |
no. | 01/01/70 00:00 | |
actually | 01/01/70 00:00 | |
Aside: Keil | 01/01/70 00:00 | |
You are using Keil! | 01/01/70 00:00 | |
yes... | 01/01/70 00:00 | |
Learn to walk first! | 01/01/70 00:00 | |
FYP | 01/01/70 00:00 | |
12 Weeks | 01/01/70 00:00 | |
in parts | 01/01/70 00:00 | |
That's what I said | 01/01/70 00:00 | |
(As) I Understand It (now) ;-) | 01/01/70 00:00 | |
Misreading | 01/01/70 00:00 | |
No problem :-) | 01/01/70 00:00 | |
the beauty of posting twice | 01/01/70 00:00 | |
error | 01/01/70 00:00 | |
include | 01/01/70 00:00 | |
probably best not to... | 01/01/70 00:00 | |
but why? | 01/01/70 00:00 | |
Because | 01/01/70 00:00 | |
solved | 01/01/70 00:00 | |
Textbook time! | 01/01/70 00:00 | |
undefined identifier | 01/01/70 00:00 | |
typedefs of types for shorthand | 01/01/70 00:00 | |
Shorthand vs. Portability | 01/01/70 00:00 | |
Plus | 01/01/70 00:00 | |
Be careful | 01/01/70 00:00 | |
The concise C spec | 01/01/70 00:00 | |
Plus plus | 01/01/70 00:00 | |
Another one - Certainty! | 01/01/70 00:00 | |
then, define your stdstdint.h | 01/01/70 00:00 | |
shorthand can be VERY useful | 01/01/70 00:00 | |
hi...back | 01/01/70 00:00 | |
RTFM! | 01/01/70 00:00 | |
Two books you need | 01/01/70 00:00 | |
no book in hand yet | 01/01/70 00:00 | |
You need those books! | 01/01/70 00:00 | |
:P | 01/01/70 00:00 | |
meaning | 01/01/70 00:00 | |
In glorious technicolor... | 01/01/70 00:00 | |
Back to K&R | 01/01/70 00:00 | |
... but if you put it into the context of a... | 01/01/70 00:00 | |
Cool Colors | 01/01/70 00:00 | |
what about the other '51/mcu Cs? | 01/01/70 00:00 | |
pedantic | 01/01/70 00:00 | |
ya.. | 01/01/70 00:00 | |
higher resolution ADC | 01/01/70 00:00 | |
ADC fundamentals | 01/01/70 00:00 | |
Hi-Res ADC is pointless with poor input circuitry! | 01/01/70 00:00 | |
4 bits! | 01/01/70 00:00 | |
Time for a new thread! | 01/01/70 00:00 | |
xdata | 01/01/70 00:00 | |
Re-post the code & fully describe the situation | 01/01/70 00:00 | |
Block Comment style | 01/01/70 00:00 | |
codes | 01/01/70 00:00 | |
Not quite | 01/01/70 00:00 | |
no idea | 01/01/70 00:00 | |
analog input | 01/01/70 00:00 | |
how ? | 01/01/70 00:00 | |
Noob doc | 01/01/70 00:00 | |
there is no such thing | 01/01/70 00:00 | |
Already covered | 01/01/70 00:00 | |
Andy, I'm amazed | 01/01/70 00:00 | |
no | 01/01/70 00:00 | |
The link works | 01/01/70 00:00 | |
PDF Document | 01/01/70 00:00 | |
program added | 01/01/70 00:00 | |
I'm not sure what you're asking? | 01/01/70 00:00 | |
is it? | 01/01/70 00:00 | |
What?? | 01/01/70 00:00 | |
ok | 01/01/70 00:00 | |
Post your code properly! | 01/01/70 00:00 | |
Why read twice? | 01/01/70 00:00 | |
how? | 01/01/70 00:00 | |
Accessing arrays | 01/01/70 00:00 | |
some hints | 01/01/70 00:00 | |
sfr16 | 01/01/70 00:00 | |
Did that | 01/01/70 00:00 | |
re SFR16 | 01/01/70 00:00 | |
Naing Linn really needs to learn to do it himsel | 01/01/70 00:00 | |
Thanks![]() | 01/01/70 00:00 | |
8 to 16 bit | 01/01/70 00:00 |