目录
  • 一、什么是typedef
  • 二、typedef用法
    • 1、对于数据类型使用例如:
    • 2、对于指针的使用例如
    • 3、对于结构体的使用
  • 三、进阶typedef
    • 1、数组指针
    • 2、指针函数
    • 3、Int *(*array[3])(int);
    • 4、Void (*funA(int,void(*funB)(int)))(int);
  • 四、Typedef与define

    一、什么是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为整型变量。

    到此这篇关于C语言 typedef的使用的文章就介绍到这了,更多相关C语言 typedef使用内容请搜索本网站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本网站!

    您可能感兴趣的文章:

    • C语言 typedef:给类型起一个别名
    • C语言基础知识点解析(extern,static,typedef,const)
    • 深入解析C语言中typedef的四个用途
    • C语言typedef与复杂函数声明问题的深入解析
    • C语言中#define与typedef的互换细节详解