zoukankan      html  css  js  c++  java
  • struct多种声明定义写法的小结

    详细讲解struct这个容易混淆的写法的书是有的,《C专家编程》中就有详细的描述。可惜大家喜欢问问题有甚于喜欢看书,于是BBS上泛滥着前人早已经解决、说明清楚的问题。哎,中国勤学好问者的悲哀。这里简要说明一下struct,为大家省钱。

    /* struct.c
    *  本程序演示了struct的种种写法。注意,所有这些写法都能编译通过
    *  author: smileonce
    *  date  : 2005-01-14
    */
    
    // 这种写法是最要命的,但是它却可以通过, 最后面那个foo是结构体的实例
    struct foo
    {
        int foo;
    } foo;
    
    // 有了typedef,意义明显与上面不同,注意的是struct后面那个标签可以不写,最后面那个bar是匿名结构体的别名
    typedef struct 
    {
        int bar;
    } bar;
    
    // 这种写法是最没人用的,因为它的定义是一次性的,struct1是一个匿名struct的实例
    struct 
    {
        int aaa;
    } mystruct1;
    
    //最常用的写法,清晰不言自明,my_struct_tag是结构体标签,my_struct_type是struct my_struct_tag的别名
    typedef struct my_struct_tag
    {
        int aaa;
    } my_struct_type;
    
    // 下面两种定义的写法都可以,当然使用typedef定义的写法更简洁些
    my_struct_type mystruct2;             //通过typedef定义的结构别名来定义变量
    struct my_struct_tag mystruct3;       //通过结构标签定义变量
    
    
    int main(int argc, char *argv[])
    {
     return 0;
    }
  • 相关阅读:
    Luogu 4841 城市规划
    Luogu 4721 【模板】分治 FFT
    Luogu 4091 [HEOI2016/TJOI2016]求和
    Luogu 3723 [AH2017/HNOI2017]礼物
    FFT笔记
    Luogu 4900 食堂
    Luogu 4155 [SCOI2015]国旗计划
    Luogu 4069 [SDOI2016]游戏
    Luogu 4254 [JSOI2008]Blue Mary开公司
    Luogu 4251 [SCOI2015]小凸玩矩阵
  • 原文地址:https://www.cnblogs.com/lishuai0214/p/4199564.html
Copyright © 2011-2022 走看看