写点什么

C 语言 typedef 的用法示例讲解

作者:向阳逐梦
  • 2023-07-20
    四川
  • 本文字数:1121 字

    阅读完需:约 4 分钟

C语言 typedef的用法示例讲解

typedef 是在 C 和 C++编程语言中的一个关键字,作用是为现有的数据类型(int、float、char……)创建一个新的名字,目的是为了使代码方便阅读和理解。

一、什么是 typedef

typedef 是在 C 和 C++编程语言中的一个关键字。作用是为现有的数据类型(int、float、char……)创建一个新的名字,目的是为了使代码方便阅读和理解。

二、typedef 用法

1、对于数据类型使用例如:

typedef  int   NEW_INT;
复制代码

以上就是给 int 起了一个新的名字 NEW_INT,注意要加分号。当要定义 int 类型数据时就可以:

NEW_INT num;
复制代码

此时 NEW_INT num 等同于 int num。

2、对于指针的使用

typedef  int   *PTRINT;
复制代码

以上就是给 int *起了一个新的名字 NEW_INT。可定义 int 类型指针变量如:

PTRINT x;
复制代码

此时 PTRINT x 等同于 int *x。

例:

3、对于结构体的使用

在声明结构体时可为结构体和结构体指针起别名,如:

typedef struct NUM{     int a;     int b;}DATA,*PTRDATA;
复制代码

此时 DATA 等同于 struct NUM,*PTRDATA 等同于 struct NUM *。

定义结构体变量及指针可简化为:

   DATA data;           //定义结构体变量   PTRDATA pdata;   //定义结构体指针
复制代码

举个例子:

#include <stdio.h>typedef struct NUM{     int a;     int b;}DATA,*PTRDATA;int main(){       DATA data;           //定义结构体变量       PTRDATA pdata;   //定义结构体指针       pdata=&data;      //结构体指针指向结构体变量             data.a=100;       data.b=500;       printf("a=%d\nb=%d\n",data.a,data.b);       printf("a=%d\nb=%d\n",pdata->a,pdata->b);       return 0;}
复制代码

运行结果:

三、进阶 typedef

1、数组指针

int (*ptr)[3];
复制代码

使用 Typedef:

typedef int (*PTR_TO_ARRAY)[3];
复制代码

例:

#include <stdio.h>typedef int (*PTR_TO_ARRAY)[3];int main(){       Int I;       Int temp[3]={1,2,3};       PTR_TO_ARRAY ptr_to_array;       ptr_to_array = &temp;       for(i+0;i<3;i++)        {              printf("%d\n",(*ptr_to_array)[i]);        }       return 0;}
复制代码

2、指针函数

int (*fun)(void);
复制代码

使用 Typedef:

typedef int (*PTR_TO_FUN)(void);
复制代码

3、Int *(*array[3])(int);

int *(*array[3])(int);
复制代码

使用 Typedef:

typedef int *(*PTR_TO_FUN)(int);PTR_TO_FUN array[3];
复制代码

4、Void (*funA(int,void(*funB)(int)))(int);

void (*funA(int,void(*funB)(int)))(int);void (*funA(参数))(int);
复制代码

使用 Typedef:

typedef void (*PTR_TO_FUN)(void);PTR_TO_FUN funA(int, PTR_TO_FUN);
复制代码

四、Typedef 与 define

Typedef 是起别名,define 是替换。

例如:

typedef int *PTR;PTR a,b;
复制代码

此时 a,b 都是指针变量。

#define PTR int*PTR a,b;
复制代码

此时等同于

int *a,b;
复制代码

只有 a 为指针变量,而 b 为整型变量。


发布于: 刚刚阅读数: 5
用户头像

向阳逐梦

关注

人生享受编程,编程造就人生! 2022-06-01 加入

某公司芯片测试工程师,嵌入式开发工程师,InfoQ签约作者,阿里云星级博主,华为云·云享专家。座右铭:向着太阳,追逐梦想!

评论

发布
暂无评论
C语言 typedef的用法示例讲解_向阳逐梦_InfoQ写作社区