上面程序保存/home/wky/work/p807/fgprint_sensor/lib/uart/uart.cpp:38: error: constant expression evaluates to 239 which cannot be narrowed to type 'char'
时间: 2023-07-19 20:46:45 浏览: 183
这个错误是因为在给char类型的数组赋值时,某些值可能会被隐式地截断(narrowed),导致编译器报错。可以通过在数值后面添加后缀来明确指定数值类型,例如使用0xEF作为unsigned char类型的值:
```c++
char data[] = {0xEF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x07, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b};
```
如果仍然报错,可以将char改为unsigned char:
```c++
unsigned char data[] = {0xEF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x07, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b};
```
这样就可以避免隐式截断的问题了。
阅读全文