[英]I get an error I'm new to structures and don't know how to solve it
當我嘗試編譯它時出現此錯誤:
在參數列表中聲明的“struct TMatrix”在此定義或聲明之外將不可見
3 | int InputMatrix(結構 TMatrix 矩陣);
#include <stdio.h>
#define MAX 1000
int InputMatrix (struct TMatrix Matrix);
struct TMatrix{
int L, C;
};
int main() {
struct TMatrix Matrix;
InputMatrix(Matrix);
return 0;
}
int InputMatrix (struct TMatrix Matrix) {
}
function聲明中結構struct TMatrix
的聲明的scope
int InputMatrix (struct TMatrix Matrix);
是參數列表。 在它之外,這個聲明是不可見的。
所以這個結構聲明
struct TMatrix{
int L, C;
int N;
int LIN[MAX];
int COL[MAX];
float X[MAX];
};
在文件 scope 中聲明另一個結構。
您需要交換聲明,例如
struct TMatrix{
int L, C;
int N;
int LIN[MAX];
int COL[MAX];
float X[MAX];
};
int InputMatrix (struct TMatrix Matrix);
或者在 function 聲明之前放置結構的前向聲明
struct TMatrix;
int InputMatrix (struct TMatrix Matrix);
請注意,如果要更改 main 中聲明的結構類型的 object,則需要通過指向它的指針將其傳遞給 function。 否則 function 參數沒有意義。 那就是 function 應該聲明為
void InputMatrix( struct TMatrix *Matrix );
主要是你應該寫
struct TMatrix Matrix;
InputMatrix( &Matrix );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.