I am using simultaneously in the 8bit C51 and 16bit compilers for two related projects.
Am I correct that for 8bit integers, 8-bit compiler uses %bu in printf() 16bit compiler uses %hu ?
"The %b prefix in C51 is there only because C51 doesn't do ANSI default argument promotions. If it did, the prefix wouldn't be needed because, by the time printf() is called, the char would have been silently casted into a 16-bit value" For further discussion of default promotions (with particular reference to printf) see: http://www.keil.com/forum/docs/thread4014.asp