传递结构以在C++中运行

Passing struct to function in C++

本文关键字:C++ 运行 结构      更新时间:2023-10-16
#include <iostream>
using namespace std;
float distance(tocki *A, tocki *B);
int main()
{
    struct tocki{
        int x, y;
    };
    tocki A, B, C;
    cout << "x = ";
    cin >> A.x;
    cout << "y = ";
    cin >> A.y;
    cout << "x = ";
    cin >> B.x;
    cout << "y = ";
    cin >> B.y;
    cout << "x = ";
    cin >> C.x;
    cout << "y = ";
    cin >> C.y;
    cout << distance(&A, &B);
    return 0;
}
//distance between (x1,y1) i (x2,y2) e  d = sqrt((x2-x1)^2 - (y2-y1)^2);
float distance(tocki *A, tocki *B){
    return sqrt(pow(A.y - A.x, 2) - pow(B.y - B.x, 2));
}

我得到的错误是:

'tocki' was not declared in this scope
'A' was not declared in this scope
'tocki' was not declared in this scope
'B' was not declared in this scope

在这一行上:

float distance(tocki *A, tocki *B);

那么,我到底做错了什么呢?我想传递一个结构体来函数,并在我的main((程序中获取函数的结果。

将 toki 结构放在主函数之外

结构体

tocki 应该在函数距离的声明之前声明,这样编译器在检查参数类型时就知道结构体存在。此外,您应该使用 A->y ecc。,因为您已传递指向结构的指针。