C语言中typedef struct什么意思
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
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;
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 还可以掩饰复合类型,如指针和数组。
参考资料:
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
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