- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
您好,我有以下用 C 语言为 x86 编写的代码,
const double N = 4;
const double C = 1.0 / N; <---- 0.2500
double *array = (double*)calloc(10, sizeof(double));
memset(array, C, 10);
memset 的结果只为每个元素返回 0.0000 而不是 C 中存储的值..
有人可以帮忙吗?
最佳答案
memset
用给定的字节值初始化一 block 内存。字节是 unsigned char
,这是一个比 double
小得多的单位,后者在您的体系结构中使用 8 个字节。除非 double
值 C
的所有字节都相同,否则 memset
不能用于初始化 double
的数组值。在符合 IEEE-754 标准的系统上,例如各种 x86 变体,+0.0
的所有字节的所有位都是 0
,因此您可以使用 memset(array[i] , 0, 10 * sizeof(double))
将数组初始化为 0.0
,但这既不可读也不可移植。对于大多数其他值,根本不可能。
你必须使用一个简单的 for
循环:
for (int i = 0; i < 10; i++)
array[i] = C;
循环将由编译器优化,尤其是当 C 是编译时常量时。
关于c - C 中的 memset() 未初始化为 const double;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679871/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!