2013-07-19 64 views
0

我不能够使用int8_t*类型strlen()函数内部,它给像int8_t *与strlen()函数不兼容;如何解决这个问题?

来自中int8_t无效转换错误*为const char *`

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

如果我从int8_t*char*改变类型,那么它工作正常,但我不能使用char*按我的项目编码我可以选择使用int8_tuint8_t准则,所以请帮我解决这个问题。

+1

这是重复吗? http://stackoverflow.com/questions/12381855/int8-t-and-char –

+0

我认为它不是重复的,我想知道,有没有其他方法类似strlen()int8_t类型? – sokid

+0

您必须强制转换或必须编写自己的'strlen'版本,该版本可以在一系列'int8_t'元素上运行。 – jamesdlin

回答

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

0

请勿使用int8_t,除非它满足您的要求。它是而不是char的同义词。它是一个带符号的整数类型,其具有,正好为 8位,并且它不会存在于不具有8位整数类型的平台上。当您想要处理char对象时,请使用类型char。这就是它的目的。

相关问题