首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

稀疏矩陣轉置:結構體名稱不匹配導致編譯錯誤

     編輯:程式設計疑難解答

代碼定義結構體:

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。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved