Yes, but the makers of VBCC didn't consider some cases where the types have to be different.
E.g. compilers on the Amiga (and VBCC is no exeption) always put longwords on the stack.
So the following example will not work:
void main (void)
{
short a = 5;
printf ("a = %h\n",a)
}
Instead it must be %d or %ld which is warned as "suspicius" by VBCC.
Bye,
Thomas