0

起初我很抱歉我的英语:) 所以,我有一个结构和变量

typedef struct
{
  GHEADER  m_Header;
  BYTE    *m_Buf;
  Addr    *m_Abonent;
}__attribute__((packed)) PACKET;

unsigned char* uc_ptr;

我需要向某个函数发送无符号字符指针参数。我尝试使用reinterpret_cast将指针PACKET类型转换为unsigned char*.

PACKET* t_PACKET;
uc_ptr = reinterpret_cast<unsigned char*>(t_PACKET);

但后来我尝试了

std::cout << *uc_ptr << std::endl;

我什么都没看到。为什么?以及如何正确投射?

4

1 回答 1

3

当您使用<<输出 a时char,您会得到一个写入输出的字符。许多字符,如\0不会出现在控制台上。

试试这个,看看我的意思:

std::cout << static_cast<unsigned int>(*uc_ptr) << std::endl;

您需要一个循环来获取结构中的所有字节。

于 2012-11-28T20:28:33.447 回答