|> Andreas Schwab wrote:
|> |> IOW, asking for an unsigned number (in the format string)
|> |> and getting "-123" does return 0.
|>
|> | Not in C. According to the standard scanf is supposed to convert the
|> | value to unsinged and return that.
|> OK, thanks, I found that in the C spec.
|>
|> Now what does it mean to "convert the value to an unsigned and return
|> that." This is the same as above, isn't it?
|> I.e., on the scanf() side, there is no conversion needed; just store the
|> value.
The C standard also supports ones-complement and sign-magnitude
representation of signed integers where signed<->unsigned conversion is a
non-trivial operation in the sense that the bit representation does
change. And scanf knows the signedness of the destination due to the
format spec.
Andreas.
-- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/