【发布时间】:2012-02-17 20:12:27
【问题描述】:
我可以看到 const volatile 限定变量的实际用途,例如
const volatile uint64_t seconds_since_1970;
如果底层硬件机制每秒更新一次值,但变量在(可能是嵌入式的)硬件中不可写。
并且由于所有三个(C11 中为四个)类型限定符都被认为是独立的,所有组合似乎都是允许的。但我无法想象在现实生活中restrict volatile 合格的指针真的有意义:
uint32_t * restrict volatile pointer_to_some_uint32;
[编辑:澄清一下:volatile 和 restrict 都适用于指针,而不适用于指向的对象!]
这是语言允许但本身无用的构造,还是我错过了一些有价值的应用领域?
【问题讨论】:
-
四个?
constvolatilerestrict......你能告诉我第四个预选赛是什么吗?对不起我的小知识>o -
@ikh C11 定义了一个限定符
_Atomic。
标签: c c99 language-lawyer restrict-qualifier