zoukankan      html  css  js  c++  java
  • typedef

    用途一:

    定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。

    用途二:

    用在旧的C的代码中(具体多旧没有查),帮助struct。

    用途三:

    用typedef来定义与平台无关的类型。

    用途四:

    为复杂的声明定义一个新的简单的别名。

    ---------------------------------

    1.用的最多的是结构的定义:

    typedef struct mySTRUCT_TEST_S{
        int x,
        int y,
    
    }STRUCT_TEST_S;
    

     再定义时候直接使用 STRUCT_TEST_S即可。

    2.再就是在C指针那一章节中提到,可以在声明复杂指针时候使用,阅读起来更容易。

    ----------------------------------

    转载:

    陷阱一:

    记住,typedef是定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。比如:
    先定义:
    typedef char* PSTR;
    然后:
    int mystrcmp(const PSTR, const PSTR);

    const PSTR实际上相当于const char*吗?不是的,它实际上相当于char* const。
    原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。
    简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。

    陷阱二:

    typedef在语法上是一个存储类的关键字(如auto、extern、mutable、static、register等一样),虽然它并不真正影响对象的存储特性,如:
    typedef static int INT2; //不可行
    编译将失败,会提示“指定了一个以上的存储类”。

  • 相关阅读:
    Linux中批量添加文件和修改文件小笔记
    scp 命令快速使用讲解
    使用Apache Spark 对 mysql 调优 查询速度提升10倍以上
    阿里云CentOS-7.2安装mysql
    yum安装网络配置图形界面
    忘记了root密码,如何进入系统?
    Linux学习之竿头直上
    Linux命令之初出茅庐
    Linux学习之要点必备
    阿里云CentOS7.2服务器的安装
  • 原文地址:https://www.cnblogs.com/jsgnadsj/p/5092915.html
Copyright © 2011-2022 走看看