variables within an object are varying

SupArdu:
But this is a hot topic. With %u there is no error and no warning during compilation inspite of huge errors at run time.

The C compiler does not parse and verify the arguments that you pass to functions - to do that, it would have to have detailed knowlege of how each function works. It's our job as programmers to know what the functions that we invoke do.