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

 我来答
次次次蛋黄米亚
高粉答主

2018-12-16 · 说的都是干货,快来关注
知道小有建树答主
回答量:7778
采纳率:100%
帮助的人:209万
展开全部

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

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

typedef本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。

扩展资料:

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、指针类型定义 

例如: typedef int *pointer; 

描述: pointer等价于 int *定义;pointer p声明等价于int *a声明。

例如: typedef int *pointer[M]; 

描述: pointer等价于 int *[M]定义 pointer p声明等价于int *a[M]声明明。

4、函数地址说明 

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

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

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

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

typedef的作用是为一种数据类型定义一个新名字。typedef 是赋予现有类型一个新的名字,而不是创建新的类型。它本身是C语言的关键字,与auto、extern、mutable、static等关键字不能出现在同一个表达式中。

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

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

扩展资料:

typedef 与 #define 的区别

1、typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。

2、typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。

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

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

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

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

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

扩展资料

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>。

参考资料百度百科——typedef

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
defence006
2006-04-07 · TA获得超过2714个赞
知道小有建树答主
回答量:567
采纳率:50%
帮助的人:335万
展开全部
类型定义,它就和define相对应
define是把一个自己起的名字的常量定义为代替它的另一个常量来用
typedef是把一个自己起的名字的类型用已经有的类型代替使用,如:
typedef int Type1;
之后如果有Type1 i ;系统则理解为int i;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c090aec58
2006-04-07 · TA获得超过198个赞
知道答主
回答量:187
采纳率:0%
帮助的人:0
展开全部
typedef是转意,也可以说是重命名
例如:
typedef int status
就是给int重新取一个名字status
int a就和status a一样int a=status a
1楼答的都对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式