This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Passing parameters to printf()

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;
}

Parents
  • "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?

Reply
  • "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?

Children
  • 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.