我无法在函数int8_t*
内使用类型,它会给出类似的错误strlen()
从 int8_t* 到 const char* 的无效转换`
请帮助我,如何解决这个问题?
如果我将类型从 更改int8_t*
为char*
then 它工作正常,但我不能char*
根据我的项目编码指南使用我必须使用int8_t
or uint8_t
,所以请帮助我解决这个问题。
对此的“解决方案”是以下三件事之一:
char
而不是int8_t
.strlen
类型函数。int8_t
到char
。演员解决方案看起来像这样:
int8_t something[100];
... something gets set somehow ...
size_t len = strlen((char *)something);
或在 C++ 中:
size_t len = strlen(static_cast<char *>(something));
就个人而言,如果正在处理的数据确实是字符串数据,我认为选项 1 是“正确的”选项。这就是char
类型的用途,但不是int8_t
用途。
int8_t
除非满足您的要求,否则请勿使用。它不是的同义词char
。它是一个正好有 8 位的有符号整数类型,它不会存在于没有 8 位整数类型的平台上。当你想处理char
对象时,使用 type char
。这就是它的用途。