我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C语言中typedef怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C语言中typedef怎么用

这篇文章主要介绍了C语言中typedef怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    1、简洁定义

    C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。而编程中起别名,是为了编程人员编程方便,例如:

    定义如下结构体

    struct stu{int ID;char name[20];float score[3];char *data;};

    要想定义一个结构体变量就得这样写:

    struct stu Marry;//Marry是定义的新结构体学生

    这个地方可以用我们今天的主题语法:typedef,来减少定义时需要的字符,来完成目的,如下:

    typedef struct stu{int ID;char name[20];float score[3];char *data;}STU;//定义一个Marry学生结构体STU Marry;

    可以看到非常简单的定义字符,完成结构体定义,另外typedef也可以用于已有类型,为已有类型起一个新的名字。

    2、为已有类型起别名

    typedef 的用法一般为:

    typedef oldName newName;

    例如如下,为int起名 Integer:

    typedef int MY_int;MY_int a, b;a = 1;b = 2;

    这里 MY_int a, b ; 等同于 int a, b;

    typedef 还可以给数组、指针、结构体等类型定义别名。先来看一个给数组类型定义别名的例子:

    为字符数组起别名

    typedef char ARRAY20[20];

    表示 ARRAY20 是类型char [20]的别名。它是一个长度为 20 的数组类型。接着可以用 ARRAY20 定义数组:

    ARRAY20 a1, a2, s1, s2;

    结果如下,可以看到ARRAY20 定义的数组长度是20个字符。

    C语言中typedef怎么用

    因此 ARRAY20 a1, a2, s1, s2; 等价于 char a1[20], a2[20], s1[20], s2[20]; ,即数组也是有类型的,例如char a1[20];定义了一个数组 a1,它的类型就是 char [20]。

    为指针起别名

    为指针类型定义别名,例如如下:

    typedef int (*ptr_to_arr)[4];

    表示 ptr_to_arr是类型int * [4]的别名,它是一个二维数组指针类型。接着可以使用 ptr_to_arr定义二维数组指针:

    ptr_to_arr p1, p2;

    这代表p1, p2都是二维数组指针,同样也可以为函数指针类型定义别名:

    typedef int (*ptr_to_func)(int, int);ptr_to_func pfunc;

    如下表示为指针类型和函数类型起别名:

    #include <stdio.h>typedef char (*ptr_to_arr )[30];typedef int (*ptr_to_func )(int, int);int max(int a, int b){    return a>b ? a : b;}char str[3][30] = {    "Happy New Year",    "Good Good Study",    "Day Day up"};int main(){    ptr_to_arr parr = str;//parr 代表一个二维数组指针,指向str这个二维数组对应元素    ptr_to_func  pfunc = max;//pfunc代表一个函数指针,指向max函数    int i;       printf("max: %d\n", (*pfunc)(10, 20));    for(i=0; i<3; i++){        printf("str[%d]: %s\n", i, *(parr+i));    }    return 0;}

    结果如下:

    C语言中typedef怎么用

    需要强调的是,typedef 是赋予现有类型一个新的名字,而不是创建新的类型。为了“见名知意”,请尽量使用含义明确的标识符,并且尽量大写。

    3、typedef 和 #define 的区别

    typedef 在表现上有时候类似于 #define,但它和宏替换之间存在一个关键性的区别。正确思考这个问题的方法就是把 typedef 看成一种彻底的“封装”类型,声明之后不能再往里面增加别的东西。例如如下情况:

    1)能否使用其他类型说明符对宏类型名进行扩展

    用unsigned 配合 #define定义的变量,可以使用:

    #define MY_int intunsigned MY_int n;  //没问题

    但是用unsigned 配合 typedef 定义的变量,则不可以使用:

    typedef int MY_int ;unsigned MY_int n;  //错误,不能在 MY_int 前面添加 unsigned

    表明了typedef 的完整性。

    2)在连续定义几个变量的时候,typedef 能够保证定义的所有变量均为同一类型,而 #define 则无法保证。例如:

    #define My_int int *My_int p1, p2;

    //如果用宏替换则变为:

    int *p1, p2;

    这样会使, p1、p2 成为不同的类型,p1为指向int类型的指针,p2为int类型数据。

    对于typedef定义的别名,不存在上述的情况,例如:

    typedef int * PTR_INTPTR_INT p1, p2;

    p1、p2 类型相同,它们都是指向 int 类型的指针。

    感谢你能够认真阅读完这篇文章,希望小编分享的“C语言中typedef怎么用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    C语言中typedef怎么用

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    C语言中typedef怎么用

    这篇文章主要介绍了C语言中typedef怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、简洁定义C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。而编程
    2023-06-20

    C语言中的typedef怎么用

    这篇“C语言中的typedef怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中的typedef怎么用”文章吧。可
    2023-06-16

    怎么使用C语言中的typedef

    本篇内容介绍了“怎么使用C语言中的typedef”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在单片机和操作系统中 typedef 会经常用
    2023-06-25

    C语言typedef怎么使用

    typedef是C语言中的一个关键字,用于给已有的数据类型取一个新的名字。使用typedef关键字可以方便地定义新的数据类型,使代码更易读和理解。typedef的使用方法如下:1. 定义新的数据类型:```typedef int NewTy
    2023-08-15

    C语言typedef struct怎么使用

    在C语言中,typedef struct用于定义结构体类型并为其起一个别名。它的基本语法如下:```typedef struct {// 结构体成员data_type1 member1;data_type2 member2;...} ali
    2023-08-09

    怎么使用c语言中typedef关键字

    本篇内容主要讲解“怎么使用c语言中typedef关键字”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用c语言中typedef关键字”吧!1、typedef关键字可以为类型取一个新名字。2、
    2023-06-25

    typedef struct在c语言中用法

    typedef 关键字用于创建自定义数据类型的别名,允许简化复杂结构的名称。使用步骤如下:创建自定义数据类型(如结构体);使用 typedef 将其赋予一个新名称(别名);使用别名替代原始数据类型名称,提高代码可读性、减少冗余和易于维护。t
    typedef struct在c语言中用法
    2024-05-09

    c语言中typedef的作用

    typedef 在 c 语言中用于创建一种新的数据类型别名,提高代码可读性、可维护性和可移植性。它的语法为:typedef 。例如,typedef int my_int;可创建一个名为 my_int 的别名,实际上它是 int 数据类型。
    c语言中typedef的作用
    2024-05-09

    typedef在c语言中的用法

    typedef在c语言中创建类型别名,用法步骤如下:声明类型别名:使用typedef关键字和现有数据类型定义新名称。使用别名声明变量:用类型别名代替原始数据类型进行变量声明。好处包括提高可读性、增强可维护性和提高可移植性。需要注意的是,ty
    typedef在c语言中的用法
    2024-04-29

    c语言中typedef struct的用法

    typedef struct 在 c 语言中用于创建结构体类型别名,简化结构体使用。它通过指定结构体别名将一个新的数据类型作为现有结构体的别名。优点包括增强可读性、代码重用和类型检查。注意:在使用别名前必须定义结构体,别名在程序中必须唯一并
    c语言中typedef struct的用法
    2024-05-09

    c语言中怎么使用typedef定义结构体

    在C语言中,可以使用typedef关键字来定义结构体,使得结构体的类型名称更加简洁易用。以下是使用typedef定义结构体的一般形式:```ctypedef struct {// 结构体成员变量data_type member1;data_
    2023-08-15

    c语言中typedef关键字的作用

    c语言中typedef关键字的作用是定义类型别名。它创建已存在数据类型的新名称,增强代码可读性和可维护性,包括:创建类型别名数据类型重用增强代码可读性提高代码可维护性C语言中typedef关键字的作用typedef关键字是在C语言中用于定
    c语言中typedef关键字的作用
    2024-05-10

    c语言中typedef和define的区别是什么

    这篇文章主要介绍“c语言中typedef和define的区别是什么”,在日常操作中,相信很多人在c语言中typedef和define的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言中typed
    2023-06-25

    c语言typedef的作用有哪些

    C语言中的typedef关键字用于创建类型别名,使得程序员可以为某种类型定义一个新的名称。typedef的作用如下:1. 简化复杂的类型名称:typedef可以将复杂的类型名称定义为简单的别名,使得代码更易读、更易理解。例如,可以将"int
    2023-09-11

    C语言typedef关键字有什么作用

    本篇内容主要讲解“C语言typedef关键字有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言typedef关键字有什么作用”吧!1、来个笑话赵本山在春晚有一个这样的笑话,是这样的有
    2023-06-03

    C语言之结构体定义typedef struct用法详解

    在C语言中,使用struct关键字可以定义一个结构体类型,用于存储不同类型的数据。为了方便使用,可以使用typedef关键字给结构体类型取一个别名。typedef struct的用法如下:1. 通过struct关键字定义一个结构体类型:``
    2023-08-09

    c++中typedef的用法

    typedef 用于在 c++ 中创建别名,使其具有以下优点:提高代码可读性和可维护性简化类型转换强制类型安全C++ 中 typedef 的用法定义 typedeftypedef 是 C++ 中用于创建别名的关键字。它允许用户为现有数据
    c++中typedef的用法
    2024-05-01

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录