小编JSK*_*JSK的帖子

我可以用类类型来转换内存区域吗?

class RW {
    int a;
public:
    int read() const {
        return this->a;
    }
    void write(int _a) {
        this->a = _a;
    }
};

#define PHYSICAL_ADDRESS (0x60000000)
#define SIZEOF_PHY_ADDR  (sizeof(RW))
// assume physical memory area is already assigned for the sizeof(RW)

void main()
{
    int val;
    void *phy_ptr = PHYSICAL_ADDRESS;
    RW *rw_ptr = (RW *)phy_ptr;

    rw_ptr->write(1);
    val = rw_ptr->read();
}

Run Code Online (Sandbox Code Playgroud)

请假设上面的代码是伪代码。我有一个可读/写的共享物理内存区域。我想将该区域的指针强制转换为读写。我可以这样做吗?可以接受吗?

我已经检查过它工作正常,但我不确定它是否是正确的 cpp 方式。

我感谢任何回应和讨论!提前致谢!

c++

2
推荐指数
1
解决办法
320
查看次数

标签 统计

c++ ×1