什么是 "在这行代码中,D型限定符对铸型没有意义 "的意思?
(*((volatile RCC_t * const)0x400FE060)).USESYSDIV = 1;
以及如何解决?
volatile RCC_t * const
说指针(不是它指向的东西)是 const
. 但这是为一个 价值,这只是表达式中使用的一个结果。限定符,如 const
的属性 对象 在记忆中。所以在这个剧组中,它没有任何作用。
这里的问题是 const
其中指出: 指针 本身是不会改变的。但是,既然它是一个表达式的值,那么根据定义,它就不能改变,它只是 是.
这和铸造是一样的 42
到 const unsigned char
:
printf("%hhu", (const unsigned char)42);
但是,你怎么会可以的价值 42
无论如何改变?