1.typedef的意义
- typedef用于给一个已经存在的数据类型重命名
- typedef 本质上不能产生新的类型
- typedef重命名的类型:
- 可以在typedef语句之后定义
- 不能被unsigned和signed修饰(如unsigned INT32是不被允许的)
用法︰
typedef type new_name;
使用示例:
#include <stdio.h>
typedef int Int32;
struct _tag_point
{
int x;
int y;
};
typedef struct _tag_point Point;
//下面这种写法相当于把上面的两部分代码进行合并
//声明结构体并重命名为SoftArray,这种写法我们最为常用
typedef struct
{
int length;
int array[];
} SoftArray;
//这里编译器只认为,看到ListNode就是为_tag_list_node 类型,其他的不管,也没有说要先定义该结构体类型才行
typedef struct _tag_list_node ListNode;
struct _tag_list_node
{
ListNode* next;
};
int main()
{
Int32 i = -100; // int
//unsigned Int32 ii = 0;
Point p; // struct _tag_point
SoftArray* sa = NULL;
ListNode* node = NULL; // struct _tag_list_node*
return 0;
}
小结一下:
typedef本质上不是产生一个新的类型,而是给一个已有的类型,包括基本类型和结构体等一个新的名字,重命名一个已有的类型的名字而已。
本文详细介绍了C语言中typedef的用途,强调它并非创建新类型,而是为已有类型提供别名。文中通过示例展示了typedef如何为基本类型和结构体重命名,并解释了其与unsigned和signed修饰符的配合使用规则。同时,提供了多个typedef的使用场景,包括合并声明和定义,以及在链表节点结构中的应用。最后,总结了typedef的本质是类型别名,而非新类型的创建。
1万+

被折叠的 条评论
为什么被折叠?



