【发布时间】:2017-05-20 03:40:57
【问题描述】:
我想实现浮点数数组的初始化。使用预先计算的十六进制值。结果与此类似:
double arr[3];
memcpy(&arr[0], "\xe3\x3b\xef\xf6\xc1\x78\xc6\x3f\xf9\x37\x5a\x8d\xfd\xae\x75\x3f\x62\xe9\x58\x48\x4f\x49\xc6\x3f",24);
我希望这样的初始化在一行中完成。就像在这个例子中一样(但在我的例子中是浮点数):
const char s[] = "\x48\x69\x21";
在语法上可能吗?
【问题讨论】:
-
不,没有语法可以在定义点初始化对象的对象表示。
-
@KerrekSB:这不是太笼统了吗?
-
@Jarod42 - 不在 C 语言中它不会。它可能是一个陷阱值,或者是一个实现定义的值,但不是 UB。
-
C 或 C++。根据您使用的这两种不同编程语言中的哪一种,您的问题的答案会非常不同。
-
@SergeBallesta:如果您的环境不支持文件怎么办?实际的问题是为什么 OP 不想直接以
doubles的形式提供数据,但认为他必须通过char []绕道而行。这可能是一个 XY 问题。
标签: c++ arrays floating-point initialization hex