簡體   English   中英

結構類型轉換

[英]Structure Typecasting

我有一個

structure {
    int a;
    char b;
} st;

有沒有辦法對結構成員st.a進行類型轉換? 因為在少數地方我希望它為int而在少數地方我希望它為Char*

我建議使用聯合

struct {
  union {
    int a;
    char *ptr;
  } u;
  char b;
} st;

sizeof(int) == sizeof(char*)成立的假設下,您可以使用st.uast.u.ptr訪問 memory 中的相同值。

對於它的價值,請考慮使用size_t而不是int作為a字段的類型。 這樣,您的代碼在 64 位構建中仍然是正確的(其中int可能仍然是 32 位,但指針是 64 位)。

你想要的叫做unions

暫無
暫無

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

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