代碼定義結構體:
typedef struct {
triple data[maxsize+1];
int mu, nu, tu;
} tsmatrix; // 這裡別名是 tsmatrix
但函數參數寫成:
void createsmatrix(tsmatrix *M) // 實際應為 tsmatrix*,但前向聲明或定義處寫成了 struct tsmatrix
編譯器報錯:unknown type name 'tsmatrix' 或 parameter type mismatch,因為定義時用了 typedef struct { ... } tsmatrix;,但某處可能寫成 struct tsmatrix 導致類型不一致。
tsmatrix 作為類型名,不要加 struct 前綴。typedef struct tsmatrix { ... } tsmatrix; 同時支持兩種寫法。C 語言中 typedef struct { ... } Name; 後直接用 Name,切勿混用 struct Name。