C语言 typedef

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门


一.typedef 简介

C 语言 typedef 是为现有的类型起一个别名,使使用起来更加的方便,注意:它并没有产生新的类型;

举个例子:假如你得名字叫胡歌,利用 typedef 给你取一个别名叫老胡,那么胡歌是你,老胡也是你,两者都一样,示例代码如下:

typedef 胡歌 老胡;//注意typedef末尾有分号结束

以上代码得意思就是:为胡歌取一个别名叫老胡,老胡和胡歌其实就是同一个人;

二.typedef 实战

1.typedef 定义基本数据变量

C 语言中,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植,其实经常用到 typedef ,例如:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 typedef
//@Time:2021/06/25 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/


typedef  unsigned char      boolean;     /* Boolean value type. */
typedef  unsigned long int  uint32;      /* Unsigned 32 bit value */
typedef  unsigned short     uint16;      /* Unsigned 16 bit value */
typedef  unsigned char      uint8;       /* Unsigned 8  bit value */
typedef  signed long int    int32;       /* Signed 32 bit value */
typedef  signed short       int16;       /* Signed 16 bit value */
typedef  signed char        int8;        /* Signed 8  bit value */

然后我们可以自己测试以下:

typedef int myInt; //为int数据类型取一个别名

//以下两句代码是一样的
int value = 5;      //定义一个整型变量value ,并将它赋值为5
myInt value = 5;    //定义一个整型变量value ,并将它赋值为5

2.typedef 定义结构体

A.常规定义结构体

struct student{
    char cName[20]; //姓名
    int iNumber;    //电话号码
    struct student *next;//指向下一个节点
};
struct student *head; //定义结构体变量

B.typedef 定义结构体

typedef struct student{
    char cName[20]; //姓名
    int iNumber;    //电话号码
    struct student *next;//指向下一个节点
}*LinkList;

//LinkList* 等价 struct student
LinkList head; //定义结构体变量

C.结构体使用 typedef 和不使用 typedef 区别

不用 typedef,定义变量时需要加上 struct,比较麻烦;

struct student *head; //定义结构体变量

使用 typedef,定义变量时不需要加上 struct,比较简单;

LinkList head; //定义结构体变量

3.typedef 定义函数指针

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 typedef
//@Time:2021/06/25 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string>

typedef  int (*callBackFunc)(char* name);

int callback(char* name)
{
    printf("我名字是%s....\n",name);
    return 1;
}
int main()
{
   callBackFunc ff = callback;
    ff((char*)"胡歌");
    ff((char*)"刘亦菲");
   return 0;
}
/*
输出:
我名字是胡歌....
我名字是刘亦菲....
*/

关于函数指针详细介绍请参考:函数指针


三.猜你喜欢

  1. C语言逻辑运算符
  2. C语言三目运算符
  3. C语言逗号表达式
  4. C语言 sizeof 和 strlen 函数区别
  5. C语言 strcpy 和 strcpy_s 函数区别
  6. C语言 memcpy 和 memcpy_s 区别
  7. C语言 数组定义和使用
  8. C语言 数组遍历
  9. C语言 数组下标越界
  10. C语言 数组内存溢出
  11. C语言 数组下标越界和内存溢出区别
  12. C语言 二维数组定义和使用
  13. C语言 二维数组行数和列数计算
  14. C语言 指针声明和定义
  15. C语言 指针 p++ / p–
  16. C语言 p++/(p)++/(p++)/p++
  17. C语言 使用指针遍历数组
  18. C语言 指针和数组区别
  19. C语言 数组指针
  20. C语言 指针数组
  21. C语言 指针数组和数组指针区别
  22. C语言 空指针 NULL
  23. C语言 void 指针
  24. C语言 野指针
  25. C语言 函数值传递和址传递
  26. C语言 函数缺省参数
  27. C语言 函数不定长参数
  28. C语言 函数指针
  29. C语言 指针函数
  30. C语言 回调函数 callback
  31. C语言 typedef

未经允许不得转载:猿说编程 » C语言 typedef
喜欢(0) 打赏

评论抢沙发

评论前必须登录!

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!!

开始学习

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏