Chr*_*rth 3 c++ pointers reinterpret-cast
考虑(1):
uint8_t *pUART = reinterpret_cast<uint8_t*>(0x0800);
Run Code Online (Sandbox Code Playgroud)
我知道(1)只需将pUART指针更改为0x0800,但我很困惑这种方法是如何工作的.
如果是(2)那将是有意义的:
uint8_t* pUART = reinterpret_cast<uint8_t*>(0x0800);
Run Code Online (Sandbox Code Playgroud)
我感到困惑,因为(1)与(3)相同:
uint8_t x = reinterpret_cast<uint8_t*>(0x0800);
Run Code Online (Sandbox Code Playgroud)
但编译器不接受这个.有人可以为我清除这个吗?为什么(1)工作但不工作(3).
小智 10
C++是一种标记化语言.这意味着空格并不重要,除非需要分隔令牌.
uint8_t *pUART并且uint8_t* pUART意思完全相同.他们是三个令牌,即uint8_t,*和pUART.