[英]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.ua
或st.u.ptr
訪問 memory 中的相同值。
對於它的價值,請考慮使用size_t
而不是int
作為a
字段的類型。 這樣,您的代碼在 64 位構建中仍然是正確的(其中int
可能仍然是 32 位,但指針是 64 位)。
你想要的叫做unions 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.