zoukankan      html  css  js  c++  java
  • typedef struct与struct定义结构体

    今天在定义结构体的时候发现typedef struct与struct定义结构体有一些不同之处:

    结构也是一种数据类型, 能够使用结构变量, 因此,  象其他 类型的变量一样, 在使用结构变量时要先对其定义。   
    定义结构变量的一般格式为:   
         struct 结构名   
         {   
      
              类型  变量名;   
      
              类型  变量名;   
      
              ...   
      
         } 结构变量;   
      
     结构名是结构的标识符不是变量名。   
    还有一种经常使用格式为:      
     typedef struct 结构名   
         {   
      
              类型  变量名;   
      
              类型  变量名;   
      
              ...   
      
         } 结构别名;    
    另外注意:  在C中,struct不能包括函数。在C++中,对struct进行了扩展。能够包括函数。  

    编程中gcc报错: expected specifier-qualifier-list before sth

    网上查了下出错原因,解释例如以下:

    在使用GCC时常常会遇到expected specifier-qualifier-list before sth之类的错误。specifiers是指void、char、struct Foo等词汇;qualifiers是指像const和volatile一类的keyword。一个词汇在没有定义之前就使用就会出项这样的错误。能够通过typedef进行定义以后再使用。出错语句例如以下所看到的:

    typedef struct {
        int    name[20];
        int    id;
        stu    *next;    //报错
    } stu;
    解决方法
    typedef struct {
        int    name[20];
        int    id;
        struct stu    *next;    //通过编译
    }stu;
    用struct定义结构体也会有相同的问题。解决方法也一样。




        

  • 相关阅读:
    我渴望自由和成功(愿与君共勉)
    gdb使用 和core dump文件调试
    谷歌浏览器快捷键大全
    Android适屏
    BestCoder Round #33
    NAT&Port Forwarding&Port Triggering
    程序员应该学习的书
    java代码调用rtx发送提醒消息
    js实现excel导出
    一个跨界程序员:不务正业的这几年,我如何让自己的收入翻了十倍(转)
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7224244.html
Copyright © 2011-2022 走看看