C语言中typedef struct什么意思

如题所述

第1个回答  2018-12-06

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函数的首地址。

参考资料:

第2个回答  推荐于2018-02-23

struct是结构体的关键字,是用来定义结构体的。

而typedef是定义自定义类型的关键字。可以定义自定义类型。

以代码说明:

struct test
{
    int a;
};
/*
    定义一个结构体,名字是test,这样就可以使用struct test 来定义变量。比如
    struct test a;
*/
typedef struct test T;
/*
    定义一个自定义类型T,其代表含义为struct test.
    T a;和之前的struct test a;一个效果。
*/
//两个可以合并。
typedef struct test
{
    int a;
}T;

本回答被网友采纳
第3个回答  2018-12-18

typedef struct是定义一个标识符及关键字的别名,无具体含义。

它是语言编译过程的一部分,为了使用结构体方便。

如:

typedef int INTEGER;

下面两行等价

int i;

INTEGER i;

可以声明结构体类型:

typedef struct 

{

int age;

int score;

}STUDENT;

定义变量:

只能写成 STUDENT stu;

如果写成

typedef struct student

{

int age;

int score;

}STUDENT;

下面三行等价:

STUDENT stu;

struct student stu;

student stu;

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

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

扩展资料:

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

如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法。

使用typedef为现有类型创建别名,定义易于记忆的类型名。

typedef 还可以掩饰复合类型,如指针和数组。

参考资料:


第4个回答  2018-12-17

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 语句是由预编译器进行处理的。

参考资料来源:

第5个回答  2018-12-13

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

参考资料

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网