C语言中的typedef是什么意思啊

 我来答
小T爱旅行
2018-12-05 · 旅游业余爱好者,希望带大家云旅游。
小T爱旅行
采纳数:301 获赞数:193923

向TA提问 私信TA
展开全部

typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类含碧辩型(struct等)。

在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

扩展资料:

C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、谈缺数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。

一慧巧旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。

例如,C 语言在 C99 之前并未提供布尔类型,但可以使用 typedef 关键字来定义一个简单的布尔类型。

参考资料来源:百度百科—typedef

小鱼的生活笔记
高能答主

2018-12-15 · 专注于生活领域的最新咨询和生活小细节
小鱼的生活笔记
采纳数:608 获赞数:411564

向TA提问 私信TA
展开全部

类型定义。

它就和define相对应,define是把一个自己起的名字的常量定义为代替它的另一个常量来同。

typedef是把一个自己起的名字的类型用已经有的类型代替使用,如:typedef int Type1;之后如果有Type1 i ;系统则理解为int i;。

在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

扩展资料

define被定义为“宏”的标识符称为“宏名”。在编译预处理时,皮逗对程序中所有出现的“宏名”,都用宏定义燃锋卖中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。

宏定义的作用范围仅限于当前文件,即file1.c中定义 #define PI 3.14,在file2.c中该宏定义不起作用;通过将#define PI 3.14定义在common.h中,file1.c和file2.c分别#include "common.h"的方式,该基并宏定义在file1.c和file2.c中都起作用。

在C或C++语言中,“宏”分为有参数和无参数两种。

#define GPEBLT_FUNCNAME(basename) (SCODE (GPE::*)(struct GPEBltParms *))&GPE::##basename

在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符串。

输出为:token 9 = 10

详见百科typedef(相似)。

参考资料来源:百度百科-define

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TouchOfSunsky
2018-12-16 · TA获得超过7047个赞
知道答主
回答量:23
采纳率:0%
帮助的人:7145
展开全部

typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。

在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

使用方法如下:

1、定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:
char* pa, pb。

2、用在旧的C的代轮腔码中(具体州斗多旧没有查),帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名 对象名。

3、用typedef来定义与平台无关的类型。比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为:typedef long double REAL。

扩展资料:

1、typedef可以声明各种类型名,但不能用来定义变量。用typedef可以声明数组类型、字符串类册桐磨型,使用比较方便。

2、用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。

3、当在不同源文件中用到同一类型数据(尤其是像数组、指针、结构体、共用体等类型数据)时,常用typedef声明一些数据类型,把它们单独放在一个头文件中,然后在需要用到它们的文件中用#include命令把它们包含进来,以提高编程效率。

4、使用typedef有利于程序的通用与移植。有时程序会依赖于硬件特性,用typedef便于移植。

5、使用typedef增加类型名时,原则上没有个数限制。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
休闲娱乐助手之星M
2018-12-23 · TA获得超过53.8万个赞
知道大有可为答主
回答量:2857
采纳率:100%
帮助的人:112万
展开全部

typedef是在计算机编程语言中用来为复杂的声明定义简单的别名,它与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。

它的作用是为一种数据类型定义一个新名字,比如,typedef int INTERGER 相当于用INTERGER来代表int类型; 或 typedef float REAL 用REAL来代表float。需要注意的是,为了“见名知意”,请尽量使用含义明确的标识符,并且尽量大写。

扩展资料

typedef 有另外一个重要的用途,那就是定义机器无关的类型,例如,你可以定义一个叫 REAL 的浮点类型,在目标机器上它可以获得最高的精度:

typedef long double REAL;

在不支持 long double 的机器上,该 typedef 看起来会是下面这样:

typedef double REAL;

并且,在连 double 都不庆伍支雀缓持的机器上,该 typedef 看起来会是这样:

typedef float REAL;

你不用对源代码做任何修改,便可以在每一种平台上编译这个使用 REAL 类型的应用程序。唯一要改的是 typedef 本身。

在大多数情况下,甚至这个微小的变动完全都可以通过奇妙的条件编译来自动实现。不是吗? 标准库广泛地使用 typedef 来创建这样的平台无关类型:size_t,ptrdiff 和 fpos_t 就是其中的例子。

此外,象 std::string 和 std::ofstream 这样的 typedef 还隐藏了长长的,难以理解的模板特化语法,誉岁或例如:basic_string,allocator> 和 basic_ofstream>。

参考资料来源:百度百科-tpedef的平台开发

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抱香蕉睡觉
高粉答主

2018-12-06 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:143
采纳率:100%
帮助的人:7.6万
展开全部

typedef是在计算机编程语言中用来为复杂的声明定义简单的别名,它与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、灶腊缺static、register等关键字不能出现在同一个表达式中。typedef 行为有点像 #define 宏,用其实际类型替代同义字。

不同点是 typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。一般使用typedef的目的主要有两个,其一是为了让自己在后续编程时方便记住变量的名字,其二是为了简化一些变量名称较长的名字。

扩展资料:

c语言中typedef的几种用法:

1、常规变量类型定义

例如:typedef unsigned char uchar 

描述:uchar等价于unsigned char类型定义 uchar c声明等于unsigned char c声明

2、数组类型定义 

例如: typedef int array[2]; 

描述: array等价于 int [2]定义; array a声明等价于int a[2]声明。

扩展: typedef int array[M][N]; 

描述: array等价于 int [M][N]定义; array a声明等价于int a[M][N]声明。

3、函数地址说明 

描隐辩述:C把函数名字当做函数的首地址来对待局灶,可以使用最简单的方法得到函数地址。

例如: 函数:int func(void); unsigned long funcAddr=(unsigned long)func, funcAddr的值是func函数的首地址。

参考资料:百度百科-typedef

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式