2015-03-02 76 views
2

對不起,忘記了,是否可以在C/C++中聲明但不定義本地(內部函數)變量?可以在C/C++中聲明但不能定義局部變量嗎?

看起來是不可能的,因爲它是不可能從別的地方訪問本地變量一樣,但是這個功能。

那麼,說什麼是正確的:變量應該在使用前「聲明」或在使用前「定義」?

+2

你可以做一個'extern'聲明函數裏面,但不會被綁定到功能範圍 – sp2danny 2015-03-02 13:45:40

+1

產品/重複:?是什麼的定義和聲明的區別(HTTP://計算器。 com/q/1410563/256138) – rubenvb 2015-03-02 13:46:45

+0

是的,我記得這個,'extern'將會是全球性的。在開始學習編程時,關於「正常」變量,即我們正在談論的變量呢? – Dims 2015-03-02 13:46:56

回答

1

對於局部變量,沒有定義的概念。它們只是被聲明並根據程序的流程有條件地實例化。

單獨聲明和定義用於全局變量和函數。

2

對不起,忘記了,是否可以在C/C++中聲明但不定義本地(內部函數)變量?

不,本地(塊範圍)變量只有聲明。當程序到達聲明時它們被實例化,不需要單獨的定義來控制實例化。

然後,說什麼是正確的:變量應該在使用前「聲明」或在使用前「定義」?

變量和命名實體一般在使用前必須是,聲明爲。並非所有變量都有單獨的定義;如果他們這樣做,那麼定義通常不需要可用來使用該變量。

全球(命名空間範圍)和靜態成員變量(取決於使用)需要定義,以確定哪些翻譯單元負責實例他們。全局變量也可以與它們的定義,其名稱空間或該名稱空間內的函數分開聲明。

相關問題