多精度库 zkcm 和 sizeof()
Multiprecision library zkcm and sizeof()
我正在使用多精度复数库(zkcm),并希望使用complex<double>
比较一些结果。
有一次,我尝试使用 sizeof()
仔细检查变量的内存,但无论我将变量分配到多大的内存,我都会得到相同的答案 (32); 即,无论我在zkcm_set_default_prec()
中使用什么,以下代码片段都会打印 32:
zkcm_set_default_prec(128);
zkcm_class z;
cout << sizeof(z) << endl;
除了sizeof()
之外,还有其他方法可以获取变量的内存大小吗?
我无法测试它,文档有点模糊,但是有一个带有此签名的方法:
int zkcm class::get_prec ( void ) const;
描述如下:
获取对象的内部精度,即用于"this"复数的每个部分的精度
这可能会返回位数,该位数应与使用的内存量成正比。当然,确切的关系是实现细节。类本身可能只包含一个指向堆分配缓冲区的指针,其中数字和一些记账信息。sizeof
运算符(C++)是完全静态的,即在编译时计算。
有一次,我尝试使用 sizeof() 仔细检查变量的内存,但无论我将变量分配给多大的内存,我都会得到相同的答案 (32)
sizeof()
是在编译时计算的,C++语言中无法在运行时更改该值。可能有一些接口提供您需要的信息(直接或间接),也可能不是。但sizeof()
绝对不是实现你想要的方式。
相关文章:
- 如何使我的 sizeof sum 结构与空参数包一起工作
- 同一对象的"sizeof"的不同答案
- 为什么数组大小信息可用于"sizeof"运算符和 delete[] 运算符,但在将数组作为参数传递到
- 为什么 sizeof 在 C++ 中给出不正确的字节数?
- sizeof(size_t) 可以小于 sizeof(int) 吗?
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 为什么 sizeof(ar)/ sizeof(ar[0]) 在传递给函数时无法在向量上正常工作?
- 为什么 MSVC _count_of实现将 0 添加到 sizeof 的结果中?
- alignas() 对 sizeof() 的影响 - 强制性的?
- 在C++中,运算符 sizeof 返回什么数据类型?
- sizeof 函数如何在带和不带位字段的结构上工作?(填充)
- s.length 和 sizeof(a) 有什么区别?
- sizeof(enum) 可以不同于 sizeof(std::underlying_type<Enum>::
- 如何将数组传递给使用 sizeof 的函数?
- sizeof(size_t) 和 sizeof(ptrdiff_t) 什么时候会有所不同?
- " sizeof "操作员在编程中真的很重要吗,尤其是在构建大型应用程序时?
- 在QScopedPointer的实现中使用sizeof
- Sizeof返回的是指针大小,而不是数组大小.有其他方法可以找到尺寸吗
- 为什么sizeof函数在这里不能正常工作
- 多精度库 zkcm 和 sizeof()