Expansion, in this case, has no visible effect. In this case, the unsigned value is implicitly sign-extended in the register, and therefore is misinterpreted in the callee if the sign bit was set. However, mappings to external data structures are seldom a problem, since the external definition also assumes 64-bit pointers. It is always risky to call a function without an explicit declaration in scope. Furthermore, be sure to declare with a compatible prototype any function defined with a prototype.
Problems arise when mixing prototype and nonprototype declarations for the same function.
You may get unexpected results if a floating point argument is passed to it. This is a typical problem with calls to printf and after stdio.h routines. Therefore, always include stdio.h in any context where you use stdio.h facilities. Set A change in type sizes may yield some problems related to constants. In both modes, the constant is interpreted as a 32-bit unsigned int , with value 4,294,967,295.