起初我很抱歉我的英文:) 所以,我有一个结构和变量
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;
我什么都没看到。为什么?以及如何正确地投射?
答案 0 :(得分:3)
当您使用<<
输出char
时,您会将单个字符写入输出。许多字符(例如\0
)都没有显示在控制台上。
试试这个,看看我的意思:
std::cout << static_cast<unsigned int>(*uc_ptr) << std::endl;
你需要一个循环来获取结构中的所有字节。