zoukankan      html  css  js  c++  java
  • 关于struct和typedef struct

    1 struct  TelPhone{
    2 
    3            char Name[20];
    4 
    5            char  TeiNumber[20];
    6 };

    为例 这里先定义了一个 TelPhone的结构体。

    加入需要为TelPhone定义一个别名:

    其语法为

    typedef  TelPhone  TP;

    而实际上TelPhone为一个结构体,

    这样写比较好

    tepedef struck TelPhone TP;

    因为我们的TelPhone是我们自定义的类型,所以我们了解,但是别人不一定会了解,如果我们再加上struck这个关键字,别人就会知道这是一个自定义的类型,也不会造成费解。

    所以最终演化成了

    如下写法

    typedef struct TelPhone{
                 char    Name[20];
                 char    TelNumber[20];
    }TP;

    此时,我们可以定义

    可以

    struct TelPhone  tp1;

    也可以,直接

    TP  tp2;

    如果我们不需要struct TelPhone,也可以直接

    typedef struct {
                 char    Name[20];
                 char    TelNumber[20];
    }TP;

    这样只能通过TP来定义结构体了。

    在c++中的区别

     

    如果我们定义了

    1 struct  TelPhone{
    2            char Name[20];
    3           char  TeiNumber[20];
    4  };

    那么可以直接视同TelPhone来定义结构体变量

    TelPhone tp1;

    c++中

        struct   Student   
        {   
        int   a;   
        }stu1;//stu1是一个变量  

    stu1就表示一个Student类型的结构体变量

    而:

    typedef   struct   Student2     
    {   
        int   a;   
    }stu2;//stu2是一个结构体类型=struct Student  

    和c语言中没有差别。

  • 相关阅读:
    go编程资料库
    ubuntu上安装notepadpp
    ubuntu上安装firefox
    golang之下载安装配置
    ubuntu上制作应用程序的快捷图标启动
    ubuntu上安装字体
    装机必备
    uml设计之多重性
    数据库冗余是否必要
    GitHub上传文件不能超过100M的解决办法
  • 原文地址:https://www.cnblogs.com/jiudianren/p/5635780.html
Copyright © 2011-2022 走看看