C语言学习笔记--类型定义&联合

  • 一、类型定义

    C语言自定义数据类型 (typedef)

    C语言提供一个叫做typedef的功能来声明一个已有的数据类型的新名字。

    typedef int Length;

    使得Length成为int类型的别名。

    这样,Length就可以替代int出现在定义变量和声明函数的地方了。

    Length a,b;

    Length a[10];

    新的类型的名字是原来类型的别名;改善了程序的可读性。

    typedef struct {

      int day;

      int month;

      int year;

    } Date;              //声明了一种结构类型,它的别名是Date

  • 二、联合

    存储

      所有的成员共享一个空间。

      同一时间只有一个成员是有效的。

      union的大小是其最大的成员。

    初始化

      对第一个成员初始化

    union  AnElt{

      int i;

      char c;

    }   AnElt1,AnElt2;

    sizeof (union ...)                //sizeof 每个成员的最大值

    

      1 #include<stdio.h>

      2 

      3 typedef union {

      4         int i;

      5         char ch[sizeof(int)];

      6 } CHI;

      7 

      8 int main(int grc,const char *grv[])

      9 {

     10         CHI chi;

     11         int i;

     12         chi.i = 1234;

     13         for(i=0 ; i<sizeof(int) ; i++){

     14                 printf("%02hhX",chi.ch[i]);

     15         }

     16         printf("\n");

     17 

     18         return 0;

     19 }

 

你可能感兴趣的:(学习笔记)