Hi,
I'm using the ST32F103G uC and Keli uVision 4.22 IDE.
Something that I don't understand is how to use single bits as variables or as a function return value. With other compilers I know 'bit' and 'bool' but somehow this doesn't seem to work with the armcc compiler. I searched the Internet but could not find anything in that direction.
Who can help me out?
Thanks in advance,
Henk
For the type bool, just #include <stdbool.h>. If you don't have the header, it's easy to put one together simply mapping bool to int or char.
Thanks!
"mapping bool to int or char"
But, as already noted, that does not give a single-bit variable - as per the original question & title
that does not give a single-bit variable - as per the original question & title
Let's just say I was able to see the intent of the OP by looking beyond the literal meaning of the question. Try it, it can be fun :-)
Yes, all too often the literal question asked is not the real question that should be answered.
Hence my fequent quoting of www.catb.org/.../smart-questions.html
But you need to make clear that the reply given is not a literal answer to the literal question.
"... mapping bool to int or char."
However, the mapping and implementation of boolean semantics becomes the responsibility of the user:
typedef int _Bool; _Bool is_nonzero; int value = 1234; { is_nonzero = !!value; }
{ is_nonzero = !!value; }
I would prefer to write:
{ is_nonzero = value != 0; }
I expect some people will look twice (pun intended) at a !! expression.
The second alternative can be read explicitly as "valie is not equal to zero" or shorter "value is not zero".
My typedef of a Bool (coming from years back) has always been of the form:
typedef unsigned char Bool; // TRUE/FALSE(/MAYBE) type conditions