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

C 語言堆疊實作編譯錯誤 C2628:VC++ 編譯 C 代碼需調整專案設定

     編輯:程式設計疑難解答

錯誤 C2628: 'SqStack' followed by 'void' is illegal 通常因在 **C++ 專案** 中編譯 **C 風格代碼** (如結構體未 typedef、混用 // 註解、變數宣告不在區塊開頭等)。

解決方法

  1. 將檔案命名為 .c 副檔名,VS 會自動用 C 編譯器 (cl.exe /TC)。
  2. 或專案屬性 → C/C++ → Advanced → Compile As → Compile as C Code (/TC)。
  3. 補全 C 標準寫法:
    • 結構體需 typedef struct { ... } SqStack; 或宣告變數時加 struct SqStack。
    • 變數宣告必須在區塊開頭 (C89),或改用 C99 模式 (/std:c11 / /std:c17)。
    • 避免 // 註解 (C89),改用 /* */。

修正後的堆疊結構體

typedef struct {
    SElemType *base;
    SElemType *top;
    int stacksize;
} SqStack; // 現在可直接用 SqStack 宣告變數

套用上述設定後,原始碼即可在 Visual Studio 正常編譯運行。

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