Pretty sure the first one is shared with C and C++ but not sure. Second question appears to fall straight into the C++ domain.
A. Suppose that I have a uint16_t variable, lets say "x". If I write x = 0xFFFF, it will represent a positive integer and if x is an int16_t, it will represent a negative value. Is this correct?
B. Now, for C++, lets suppose I have an overloaded function, one myFunct( uint16_t value ) and the other as myFunct( int16_t value ). Now, if I use a typed variable, say "x" from the previous question, I am assuming that the type of x will determine which one is executed. But, what happens if I write myFunct(0xFFFF)? 0xFFFF has not been given a type (or has it?).
Yes, I have code that I am going to test with, in a few minutes. But, I am trying to understand the underlying principles, here. And I don't know what the principles are.