c ++,reinterpret_cast结构*到unsigned char *

时间:2012-11-28 20:22:39

标签: c++ structure reinterpret-cast

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

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

unsigned char* uc_ptr;

我需要发送一些函数unsigned char pointer参数。我尝试使用reinterpret_cast将指向PACKET的指针投射到unsigned char*

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

但后来我尝试了

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

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

1 个答案:

答案 0 :(得分:3)

当您使用<<输出char时,您会将单个字符写入输出。许多字符(例如\0)都没有显示在控制台上。

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

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

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