与const相反 - 换句话说,一个写作限定符?

时间:2011-08-02 19:53:17

标签: c++

我正在阅读Stroustrup的c ++ FAQ,我注意到,在某一点上,他在语言中有一个 writeonly 限定符。经过一番讨论,一位同事和我只能提出一个目的 - 副作用,特别是在一些内存映射IO的情况下。是否有 writeonly 限定符的其他合法用法?

3 个答案:

答案 0 :(得分:4)

write-only限定符对硬件寄存器很有用,因为从write-only寄存器读取会导致未定义的行为或细微的运行时错误。您可以使用#define#define write-only,然后将其应用于special_register write_only UTXBUF;

等寄存器

EE Times上有How to Enforce write-only access的博文。

答案 1 :(得分:4)

它在C ++ AMP,GPGPU语言扩展中卷土重来,用于告诉运行时他们不必将某些缓冲区从主机复制到设备。

答案 2 :(得分:3)

对于许多类型的硬件接口非常有用,它们不允许读取计算机的输出,或者输入是状态,输出是控制等。

在我的设备驱动程序写日中,这在硬件设计中经常发生。 20世纪70年代硬件添加缓冲区相对昂贵,缓冲区可以读回最后写入的缓冲区,或者在与输出寄存器相同的地址处有一个节省成本的接口,返回设备的其他内容。在重要的时间和地点,驱动程序必须维护写入的最后一个值的副本,例如,如果更新实际上会导致状态更改。