c++中全域的 const 使用問題

來源:互聯網
上載者:User

C語言的習慣認識,在C++中,有一些地方會出錯。在extern const連用的時候遇到一則。

在C++中直接使用const,隱含著static的寓意。下面的程式在C語言編譯沒問題。但在C++中則編譯不通過,使用的編譯器是:MinGW gcc 或 VS2008。

檔案a.cpp(或是a.c) 中

const   int   i   =  123; //因為這裡隱含的意思是 static const
...

檔案main.cpp(或是main.c) 中

extern   const   int   i;

int main()

{

//當在這裡使用i的時候,C++就會編譯到串連過程時候報告出錯.

}

在C++中,修改的方法就是:

檔案a.cpp 中

extern const   int   i   =   60; //用extern去掉了const隱含static寓意

...

C++中,全域的使用單獨const說明, 隱含著檔案局部的意思static,如果需要其它檔案中使用,需要首碼extern。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.