error C2143的原因及解決辦法

來源:互聯網
上載者:User

作者:朱金燦

來源:http://blog.csdn.net/clever101/


      今天遇到一個有點詭異的編譯錯誤:1>c:/program files/microsoft visual studio 8/vc/include/yvals.h(513) : error C2143: syntax error : missing ';' before namespace (VS C++2005環境下)。然後上網查資料,大致弄明白了這個錯誤的根源。這個錯誤是在編譯一個cpp檔案時出現的。我檢查了一下這個cpp檔案,並沒發現問題。我又發現它包含了一個Stack.h。這個Stack.h為我定義的一個堆棧類標頭檔聲明。我檢查了一下Stack.h,發現該檔案存在的問題是:


      class CStack<br />{<br />public:<br />CStack(void);<br />virtual ~CStack(void);<br />} // 缺少分號 


     就是說這個編譯錯誤在什麼條件下出現呢?就是包含的自訂的標頭檔存在問題,但緊接著包含STL的標頭檔,如我的:


#include "Stack.h"<br />#include <iostream><br />using std::cout;<br />


     這樣就會出現error C2143的錯誤。












聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.