zoukankan      html  css  js  c++  java
  • struct类型声明的疑问

    如果struct类型的声明放在函数体内,比如下面这个程序:

    #include<stdio.h>
    #define N 5

    int main()
    {
    struct Student *input(struct Student *p);
    struct Student
    {
    int num;
    char name[10];
    float score[3];
    };
    struct Student stu[N],*s=stu;
    s=input(stu);
    return 0;
    }

    struct Student *input(struct Student *p)
    {
    }

    编译时在引用input函数行出现错误:“Student *类型的实参与Student *类型的形参不兼容“,

    这个错误的原因可解释为struct类型的声明在input函数的声明之后,函数无法对实参、形参进行匹配。

    但如果把struct类型声明放在input函数声明之前(仍然在main函数内),则会在input函数声明行出现错误:

    ”使用局部类型声明的 函数“input”必须在此翻译单元中定义“。

    这个错误出现的原因就无法解释了。

    当然,struct类型的声明放在主函数之前就没有任何错误。

  • 相关阅读:
    SQL优化
    Mybatis
    Spring MVC(总结二)
    ES多机集群配置
    ES索引,分片,一致性
    ElasticSearch关于索引库的命令操作
    试题01(一)
    Linux安装配置elastic search
    Windows安装配置elastic search
    SpringBoot(二)
  • 原文地址:https://www.cnblogs.com/yapollo/p/2516064.html
Copyright © 2011-2022 走看看