c++ - 这个结构已定义,那么为什么函数认为它没有定义呢?

标签 c++ arrays parameters struct undefined

C++ 新手。只是制作一个简单的结构/数组程序。为什么我不能像我想要的那样传递结构数组?

int NumGrads();

int main()
{
      struct Student {
          int id;
          bool isGrad;
      }; 

    const size_t size = 2;
    Student s1, s2;
    Student students[size] = { { 123, true },
                             { 124, false } };

    NumGrads(students, size);

    std::cin.get();
    return 0;
}

int NumGrads(Student Stu[], size_t size){

}

我知道它一定与传递引用或值有关,但如果我在 main() 中定义它,我肯定不会收到 NumGrads 参数的错误?

最佳答案

您的结构定义在您的main内部,您的NumGrads 函数定义在外部主要

这意味着您的结构是在您的函数可以看到它的范围之外定义的。

将结构的定义移到 main 之上,问题就解决了。

关于c++ - 这个结构已定义,那么为什么函数认为它没有定义呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14983429/

相关文章:

具有相同名称的 C++ 虚拟覆盖函数

arrays - 如何在 Ruby 中用零填充字符串

C++ 对于哪些类型,参数类型名称可以与带类型说明符的参数名称相同?

java - 向 Controller 发送参数

c++ - 累加值元组

c++ - XOR 运算符与 std::ostream 运算符

c++ - 为什么字符变得无用? libcurl c++ Utf-8 编码的 html;

java - 如何在 java 中正确执行二进制 switch 语句?

C 字符数组地址问题

c# - 具有大量参数的 DAL 方法