Hi All, I am newbie in this. Is this function declaration right, as it has bit as parameter, void myfunc(unsigned char,bit);
Ashutosh
No, it isn't.
You really need to get a good 'C' textbook (or books) to learn the basics of the 'C' programming language.
Some suggestions here: http://www.keil.com/books
In C51 it's legal - Or at least, it's accepted.
Try compiling this (non-functional) snippet:
void myfunc(unsigned char,bit); void main(void) { myfunc(1,1); } void myfunc(unsigned char a,bit b) { if (b) ++a; }
It's completely standard 'C'.
Here's a quiz:
int Test(void) { int a; return sizeof a; }
Who reached for their favourite 'C' book?
At least 99.999% of existing code would not look like that ;)
Is it - even with 'bit' ?
However, the fact that it's syntactically valid in isolation doesn't mean that it is "right".
To be "right" means that the declaration has to match the definition. As we have no idea what the definition is, the balance of probabilities that one declaration matches one of the infinite space of possible definitions must be vanishingly small. So "No" is the most-likely-correct answer...
;-)
Good catch!
Your original post was a perfectly correct answer to the OP's question. If he'd asked a different question, your answer would have been wrong - nonetheless, the code he posted is standard 'C' (this time with the proviso that it uses implementation specific extensions as permitted by the standard).
Did I get away with that?
View all questions in Keil forum