C语言中typedef struct什么意思

 我来答
小鱼的生活笔记
高能答主

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

向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

小T爱旅行
2018-12-15 · 旅游业余爱好者,希望带大家云旅游。
小T爱旅行
采纳数:301 获赞数:193885

向TA提问 私信TA
展开全部

typedef struct是定义一个标识符及关键字的别名,无具体含义。,它是语言编译过程的一部分,为了使用结构体方便。

例:typedef struct tagMyStruct MyStruct。

因此,MyStruct实际上相当于struct tagMyStruct,可以使用MyStruct varName来定义变量。

在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间。

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

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

扩展资料:

typedef struct 结构名:



类型 变量名; 

类型 变量名; 

... 

} 结构别名; 

//结构别名:只是结构的标示符——结构体类型

在C语言中,struct不能包含函数。在C++中,对struct进行了扩展,可以包含函数。

typedef常用来定义关键字、冗长的类型的别名。 宏定义只是简单的字符串代换(原地扩展),而typedef则不是原地扩展,它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变 量的功能。

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

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

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-16 · 说的都是干货,快来关注
知道小有建树答主
回答量:7778
采纳率:100%
帮助的人:190万
展开全部

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

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

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增加类型名时,原则上没有个数限制。

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式