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;
    }
  • 相关阅读:
    self 和 super 关键字
    NSString类
    函数和对象方法的区别
    求两个数是否互质及最大公约数
    TJU Problem 1644 Reverse Text
    TJU Problem 2520 Quicksum
    TJU Problem 2101 Bullseye
    TJU Problem 2548 Celebrity jeopardy
    poj 2586 Y2K Accounting Bug
    poj 2109 Power of Cryptography
  • 原文地址:https://www.cnblogs.com/lishuai0214/p/4199564.html
Copyright © 2011-2022 走看看