我无法在函数int8_t*内使用类型,它会给出类似的错误strlen()
从 int8_t* 到 const char* 的无效转换`
请帮助我,如何解决这个问题?
如果我将类型从 更改int8_t*为char*then 它工作正常,但我不能char*根据我的项目编码指南使用我必须使用int8_tor 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。这就是它的用途。