![]() |
1
2
我想你不能申报
我有点好奇,是否有可能重载新操作符,使类强制特定成员位于页面边界上。我很快就拼凑了超负荷的操作符来做这件事。它会导致每次分配一个完整的额外页面。它找到该字段所在位置的偏移量,然后按该量调整地址。因为额外的内存是分配的(假设我的计算正确),所以它是安全的。不过,很难看。 它将分配偏移量填充到类中的成员中,以便知道释放指针所需的“取消偏移”量。这真是可怕的代码。作为一个实验,它看起来还不错,但在生产代码中就不那么好了。
|
![]() |
2
1
但是,有些编译器有pragma来对齐结构,MSVC有' __declspec align '其中可以指定数据成员的对齐方式,编译器将插入适当的字节数。 可以在堆上分配1个成员的情况下进行联合-联合将像往常一样包含所有字段,但堆分配的字段将只是一个指针。
|
![]() |
TheKing · 为什么数组的地址可以有负值? 2 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 6 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 6 年前 |
![]() |
Jaques · “.exe”已触发断点 6 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 6 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 6 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 6 年前 |