0

我无法在函数int8_t*内使用类型,它会给出类似的错误strlen()

从 int8_t* 到 const char* 的无效转换`

请帮助我,如何解决这个问题?

如果我将类型从 更改int8_t*char*then 它工作正常,但我不能char*根据我的项目编码指南使用我必须使用int8_tor uint8_t,所以请帮助我解决这个问题。

4

2 回答 2

0

对此的“解决方案”是以下三件事之一:

  1. 使用char而不是int8_t.
  2. 编写自己的strlen类型函数。
  3. 在呼叫点投射int8_tchar

演员解决方案看起来像这样:

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用途。

于 2013-07-19T12:18:59.877 回答
0

int8_t除非满足您的要求,否则请勿使用。它不是的同义词char它是一个正好有 8 位的有符号整数类型,它不会存在于没有 8 位整数类型的平台上。当你想处理char对象时,使用 type char。这就是它的用途。

于 2013-07-19T12:24:47.403 回答