Linux C 笔记 - 结构体

129 阅读1分钟
  • 匿名结构体
struct st {
    int a;
    union {
       int b;
       int c;
    };  

    struct {
       /* int a; */ // 此处报错
       int d;
    };  
};

int main() {
    struct st s = {
        .a = 1,
        .b = 2,
        .d = 3,
    };
    return 0;
}
  • 宏定义结构体成员
struct st { 
    union {
       int ub; 
       int uc; 
    }u; 

#define uub u.ub
#define uuc u.uc
};

int main() {
    struct st s = {0};
    s.uub = 1;
    s.uuc = 2;
    return 0;
}