我想知道如何转换double*到float*,并float*以double*C或C++?谢谢.我尝试使用(float*)和使用(double*),但它似乎没有我的观察工作.
将指针强制转换为其他类型不会影响指向的值.取消引用此类转换指针将强制读取或写入不同类型的内存内容.由于double并float具有不同的不兼容表示,因此会导致未定义的行为.
您可以使用简单循环在数组float和double数组之间进行复制,但实际上您将把值从一个表示转换为另一个表示,从而float在转换回时失去精度,而在转换回时不会恢复double.
假设dp和fp指向至少包含n个元素的数组:
void convert_float_to_double_array(double *dp, const float *fp, size_t n) {
while (n--) *dp++ = *fp++;
}
Run Code Online (Sandbox Code Playgroud)
除非内存大小是一个真正的问题,或者您正在为具有严重硬件限制的嵌入式系统进行编程,否则您根本不应该使用它float.
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |