C语言使用typedef进行类型重定义

今天学习STM32开发时与遇到了一个类型重定义语句,查阅资料后把它的用法整理如下,不到之处敬请留言批评指定,看到就修改,来自开源,回馈开源,共同进步!

类型重定义基本介绍:

在 C 语言中,除系统定义的标准类型和用户自定义的结构体、共用体等类型之外,还可以使用类型说明语句typedef 定义新的类型来代替已有的类型。

typedef 语句的一般形式是: 

1 typedef 已定义的类型 新的类型;

例如:

1 typedef int INTEGER; /*指定用 INTEGER 代表 int 类型*/
2 typedef float REAL; /*指定用 REAL 代表 float 类型*/

在上述添加了 typedef 语句的程序中,下列语句同上述语句就是等价的: 

1 int i, j; /*与 INTEGER i, j;*/
2 float pi; /*与 REAL pi;*/

实际上,typedef的最常用的作用就是给结构体变量重命名:

#include<stdio.h>
#include<string.h>
typedef struct _INFO
{
        int num;
        char str[256];
}INFO;
int main()
{
        struct _INFO A;
        INFO B;    //通过typedef重命名后的名字INFO与struct _INFO完全等价!
        A.num = 2019;
        strcpy(A.str,"Welcome to wind-under-the-wing");
        B=A;
        printf("This year is %d %s\n",A.num,A.str);
        printf("This year is %d %s\n",B.num,B.str);
        return 0;
}

相关推荐