Dotcpp  >  编程教程  >  C语言结构体和共用体  >  C语言typedef用法详解

C语言typedef用法详解

点击打开在线编译器,边学边练

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

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


例如:

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


在具有上述typedef语句的程序中,下列语句就是等价的。

int i, j; /*与 INTEGER i,j;*/
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 = 2014;
    strcpy(A.str,"Welcome to dotcpp.com");
    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;
}


可以看到typedef可以为关键词改名,使改名之后的INFO类型等价于struct _INFO类型,让我们在定义这种结构类型时更方便、省事。


事实上,许多windows开发中的许多我们未见过的数据类型,看起来很难懂,但绝大部分都是通过typedef定义后的基本数据类型,大家可以通过追溯变量的定义来了解。



本文固定URL:https://www.dotcpp.com/course/41

C语言教程
第一章 C语言的过去与未来
第二章 C语言快速入门
第三章 C语言的数据类型
第四章 C语言中的基本输入输出
第五章 C语言运算符和表达式
第六章 C语句和程序流
第七章 C语言函数
第八章 C语言数组
第九章 C语言指针
第十章 C语言结构体和共用体
第十一章 C语言文件操作
第十二章 C语言预处理
第十三章 C语言位运算
第十四章 附录
Dotcpp在线编译      (登录可减少运行等待时间)