cha*_*umQ 5 c++ arduino reinterpret-cast
我试图复制这个,但它不会编译.
unsigned char x = 0;
reinterpret_cast<signed char>(x);
Run Code Online (Sandbox Code Playgroud)
它说
C:\Users\SXG5558\Documents\Arduino\sketch_jun30a\sketch_jun30a.ino: In function 'void setup()':
sketch_jun30a:3: error: invalid cast from type 'unsigned char' to type 'signed char'
reinterpret_cast<signed char>(x);
^
exit status 1
Run Code Online (Sandbox Code Playgroud)
编辑:
要清楚,我确实想要重新解释内存中从有符号到无符号的位.我正在编写一个读取和写入无符号数据的I2C库,但我正在使用该库来控制已签名的传感器,因此我想重新解释转换实际数据.
cppreference.com的相关部分是
键入别名
当动态类型为DynamicType的对象的指针或引用是reinterpret_cast(或C样式转换)为指针或对不同类型AliasedType的对象的引用时,转换总是成功,但结果指针或引用可能仅用于如果满足以下条件之一,则访问该对象:
[...]
- AliasedType是DynamicType的(可能是cv限定的)有符号或无符号变体
[...]
即.你忘记了&
你链接的例子.