将类型转换为从大到小的数据类型会导致C中的数据丢失吗?
我急切地想知道,大的存储数据或指针是如何向小的、没有 失去他们的 为简单起见,我举了这个例子,但我会尝试用大的 结构指针(结构有更多成员)指向小将类型转换为从大到小的数据类型会导致C中的数据丢失吗?,c,C,我急切地想知道,大的存储数据或指针是如何向小的、没有 失去他们的 为简单起见,我举了这个例子,但我会尝试用大的 结构指针(结构有更多成员)指向小 int存储在char,double到int,你的问题不是很清楚 当然,将一个值从一种类型转换为一种具有较少可用位的类型将丢失不适合的位,因此如果使用这些位,它们将丢失。否则它会去哪里 对于指针,问题就更不清楚了,一般来说,指向对象的大小并不影响指针的大小 鉴于: struct small { int a; }; struct big { int b[1
int
存储在char
,double
到int
,你的问题不是很清楚
当然,将一个值从一种类型转换为一种具有较少可用位的类型将丢失不适合的位,因此如果使用这些位,它们将丢失。否则它会去哪里 对于指针,问题就更不清楚了,一般来说,指向对象的大小并不影响指针的大小 鉴于:
struct small { int a; };
struct big { int b[1000]; };
<> p> >代码< > SeZeof(StultSub)>代码>小于
(int)1.2
将丢失信息。@chux很好,我已经编辑过,试图使推理更清晰。谢谢。旁白:考虑到6.3.1.4的潜在UB,以可移植的方式确定float
值是否会转换为long
,而不会丢失信息不是一个小问题。OP可能会问一些类似的问题,但帖子并不清楚。