【发布时间】:2017-02-23 19:23:59
【问题描述】:
我有一个unsigned const volatile short int*。我希望它是 (x + y),在定义时设置为 0。但是,如果由于某种原因 y 更改为 5,我希望 unsigned const volatile short int* 也更改。
这在 C 中是否可行?
(注意:我使用的是带有 GNU 扩展的独立 C99 模式,我的意思是它会自动更改,而不是使用函数。)
【问题讨论】:
-
C 中的变量不会追溯更新它们的值:没有依赖系统(不像电子表格)。此外,如果您实际上不希望它是
const,请删除const。const与volatile不矛盾吗? -
指针不是
const限定的,所以是的,当然是允许改变的。 -
@WeatherVane 不,const 与 volatile 并不矛盾。 They're orthogonal in C.
-
@Olaf 你的意思是它是
const限定的指针,而不是它指向的指针吗? OP 不会更改任何指针,而是更改它指向的内容。 -
@WeatherVane:我刚看了文字;没有minimal reproducible example。 “我有一个
unsigned const volatile short int*”——这是一个指针。 “我希望它是(x + y)” - 不知道x和y是什么,但他明确要求用它们的总和设置指针。
标签: c freestanding gnu99