gpt4 book ai didi

C++ Uint8 数据类型转换为 const char* 数据类型

转载 作者:搜寻专家 更新时间:2023-10-31 01:13:37 26 4
gpt4 key购买 nike

我需要这种转换,因为我正在使用库并希望保留它们的定义,但必须让它们一起工作。

所以我有

functionX(uint8 *src, uint16 nSrcLen){
write(src);
}

write(const char msg){}

感谢您的帮助;)

编辑:附加信息

functionX 和 write 应该尽可能保持这种状态。然而,无论如何,我对更好的解决方案很感兴趣。

src 将携带空字节

编辑:写,以前是怎么用的

std::string hex_chars;
std::getline(std::cin, hex_chars);
std::istringstream hex_chars_stream(hex_chars);

unsigned int ch;
while (hex_chars_stream >> std::hex >> ch)
{
write(ch);
}

现在,已经不需要十六进制转换了,但我想还是有必要使用这个流构造

编辑当前解决方案

for(uint16 i = 0; i < nSrcLen; i++)
{
write(reinterpret_cast<unsigned char*>(src)[i]);
//printf("%d",reinterpret_cast<unsigned char*>(src)[i]);
}

现在对我有用 - 谢谢你们!

最佳答案

要转换指针类型,只需将指针从一种类型转换为另一种类型即可。

例如,

uint8 *uint8_pointer = ?;

// C style cast
const char *char_pointer = (char*)uint8_pointer;

// newer C++ style cast syntax
const char *char_pointer2 = reinterpret_cast<char*>(uint8_pointer);

你也可以反过来做:

char *char_pointer = ?;
uint8 *uint8_pointer = reinterpret_cast<uint8*>(char_pointer);

对于您的功能,您可以使用:

functionX(uint8 *src, uint16 nSrcLen){
write(reinterpret_cast<char*>(src));
}
void write(const char* msg);

关于C++ Uint8 数据类型转换为 const char* 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12296984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com