簡體   English   中英

C ++,將reinterpret_cast結構*轉換為無符號字符*

[英]c++, reinterpret_cast structure* to unsigned char*

起初,我為我的英語感到抱歉:)所以,我有一個結構和變量

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

unsigned char* uc_ptr;

我需要向某些函數發送未簽名的char指針參數。 我試圖使用reinterpret_cast將指向PACKET類型的指針轉​​換為unsigned char*

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

但是后來我嘗試了

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

我什么也沒看到。 為什么? 以及如何正確投射呢?

當使用<<輸出char您將單個字符寫入輸出。 諸如\\0類的許多字符不會顯示在控制台上。

試試這個代替我的意思:

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

您將需要一個循環來獲取結構中的所有字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM