美文网首页C语言
C语言中一些关于typedef的归纳

C语言中一些关于typedef的归纳

作者: 没想好昵称呵 | 来源:发表于2017-09-09 23:21 被阅读124次

typedef 的一般使用

  • typedef允许你为各种数据类型定义新名字。

typedef 如何声明

  • typedef声明的写法和普通的声明基本相同,只是把typedef这个关键字出现在声明的前面。
  • 例如:
    typedef char *ptr_to_char;
    ptr_to_char a;
    char b = 'm';
    a = &b;
    printf("%c\n",*a);//输出m

这个声明把ptr_to_char作为指向字符的指针类型的新名字,声明a是一个指向字符的指针。

  • 这样声明的好处:使用typedef声明类型可以减少使声明变得冗长的危险。

Attention

  • 你应该使用typedef而不是#define来创建新的类型名,因为后者无法正确地处理指针类型。
  • 例如:
   #define d_ptr_to-char char *
  
   d_ptr_to_char a,b;
   char c = 'l';
   a = &c;
   b = 'h';
   printf("%c\n",*a);//输出l
   printf("%c\n",b);//输出h

正确地声明了a,但是b却被声明为一个字符。在定义更为复杂的类型名时,如果函数指针或指向数组的指针,使用typedef更为合适。

typedef 在结构体中的使用

  • 我们首先来看一个typedef与struct结合使用的例子:
    typedef struct TagNode
    {
        int age;
        char name[20];
        char *address;
        struct TagNode *next;
    }Node,*pNode;
  • 上面的代码实际完成了两个操作:
  • 1.定义了一个新的结构体类型
    struct TagNode
    {
        int age;
        char name[20];
        char *address;
        struct TagNode *next;
    }
  • 其中TagNode称为"Tag",即标签,实际上是一个临时名字,struct关键字和TagNode一起,构成了这个结构类型,不论是否有typedef,这个结构都存在。我们可以用struct TagNode来定义变量,但要注意,使用TagNode来定义变量是不对的,因为struct和TagNode合在一起才能表示一个结构类型。
  • 2.typedef为这个结构起了新的名字,叫Node和*pNode。因此,我们可以直接使用Node来定义该结构体类型变量,使用pNode来定义指向该结构体类型的指针变量。
  • 例如:
    typedef struct TagNode
    {
        int age;
        char name[20];
        char *address;
        struct TagNode *next;
    }Node,*pNode;
    int main()
    {
        Node lhk = {19,"Robert"};
        pNode p;
        lhk.address = (char*)malloc(80);//表示查找可用连续80个字节内存的空间赋给address存储地址。
        p = &lhk;//后续引用结构体成员时,以(*p).age形式引用。
        ...
    }
  • 归纳于2017.9.9.23.08晚

相关文章

  • C语言中一些关于typedef的归纳

    typedef 的一般使用 typedef允许你为各种数据类型定义新名字。 typedef 如何声明 typede...

  • C语言中一些关于内存四区的归纳

    C语言中一些关于内存四区的归纳 博文参考传送门 一、综述 C语言程序中,代码是放在内存中执行的,我们大致将程序所占...

  • C++ struct

    1、typedef C语言中,使用如下格式 Typedef struct A { Int a; }A_type; ...

  • C语言的typedef

    typedef是一种有趣的声明形式:它为一种类型引入新的名字,而不是为变量分配空间。在某些方面,typedef类似...

  • C语言基础教程之typedef

    C语言 typedef C 语言提供了typedef关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节...

  • ios block详解

    什么是typedef? typedef就是一种替换,与宏不同的是它还可以进行对象的声明。 typedef为C语言的...

  • 初学C语言

    初学C语言——结构的使用 #include #include typedef struct tagdate{ ...

  • 数组维界基址和数组映像函数常量基址

    在数据结构 C语言版中, 对数组有这样的定义:typedef struct { ElemType *base; /...

  • C语言_typedef、union

    @(C语言) [toc] typedef 作用 设置别名,并没有创建新的类型 使用 定义一个二叉树: 现在可以写成...

  • C语言typedef语法

    1、定义新的类型名 2、定义结构体简称 3、定义数组简称 4、定义指针简称

网友评论

    本文标题:C语言中一些关于typedef的归纳

    本文链接:https://www.haomeiwen.com/subject/fraajxtx.html