Is it possible for an explicit cast of, say, int32_t
to uint32_t
, to alter the bit representation of the value?
For example, given that I have the following union:
typedef union {
int32_t signed_val;
uint32_t unsigned_val;
} signed_unsigned_t;
Are these code segments guaranteed by the spec to have the same behaviour?
uint32_t reinterpret_signed_as_unsigned(int32_t input) {
return (uint32_t) input;
}
and
uint32_t reinterpret_signed_as_unsigned(int32_t input) {
signed_unsigned_t converter;
converter.signed_val = input;
return converter.unsigned_val;
}
I'm considering C99 here. I've seen a few similar questions, but they all seemed to be discussing C++, not C.
Aucun commentaire:
Enregistrer un commentaire