We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I need to be able to pass parameters to printf from another function. What I have so far works for some data types, but not character buffers, aka strings. Here is what I have that does not work. The SetDirection() are for setting the data direction of external hardware.
int xprintf (char *fmt, ...) { int rv; register int *varg = (int *)(&fmt); SetDirection(1); rv = printf(fmt, varg); SetDirection(0); return rv; }
Except that vprintf()'s return type is void.
Erm, no, it isn't. But there's a bug in its documentation (as of the version I have here).
The actual <stdio.h> and the actual function have it returning int, as required by the standard.
"Erm, no, it isn't. But there's a bug in its documentation ..."
Erm, hence two posts; one assuming standard compliance and the other contrarily stating operation as documented.
When using part of a toolchain that does not claim compliance to the standard, what is your approach? Do you assume that part is compliant? Do you assume that part operates as documented? Do you assume nothing and test to deduce that part's behavior?
Did you do any of the above or take an entirely different approach to deduce that the bug was in the documentation and not the implementation?
When using part of a toolchain that does not claim compliance to the standard, what is your approach?
The approach was to doubt the documentation because I could not see any reason for a standard violation in this case. Keil doesn't claim full compliance to the standard, correct. But in my experience they do follow the standard where it's not an undue burden to do so. So I was surprised, and decided to look it up.