區分宣告和定義

2021-08-21 20:10:25 字數 409 閱讀 8617

變數的宣告和定義之間的區別是我們在學習過程中往往容易忽略的問題

宣告:

告訴編譯器/直譯器有這個變數存在,向程式表明變數的型別和名字。程式中變數可以宣告多次,但只能定義一次,不為該變數分配記憶體空間。否則程式如何用乙個變數名訪問多於乙個的儲存空間?

定義:

為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,乙個變數只能定義一次

定義也是宣告,因為當定義變數時我們也向程式表明了它的型別和名字;但宣告不是定義,可以通過使用extern關鍵字宣告變數而不定義它。不定義變數的宣告包括物件名、物件型別和物件型別前的關鍵字extern,extern宣告不是定義,也不分配儲存空間。事實上,它只是說明變數定義在程式的其他地方。

定義與宣告的區分

變數的宣告有兩種情況 一種是需要建立儲存空間的。例如 int a。在宣告的時候就已經建立了儲存空間。這種宣告是 定義性宣告 defining declaration 即我們平時所說的 定義 另一種是不需要建立儲存空間的,只是告訴編譯器某變數已經在別處定義過了。例如 extern int a。其中,變...

區分c 中的宣告與定義

c 編碼過程中,我們經常談及 定義 和 宣告 二者是程式設計過程中的基本概念。我們需要使用乙個變數 型別 類 結構體 列舉 共用體 或者函式時,我們需要提前定義和宣告。定義和宣告的過程,就像我們向圖書館借閱書籍一般,需要先完成書籍的印刷,即創造出書籍,這是乙個定義的過程,有了書籍,我們需要到圖書館完...

宣告和定義

宣告 向計算機介紹名字,它說,這個名字是什麼意思 而 定義 為這個名字分配 儲存空間。無論涉及到變數時還是函式時含義都一樣。無論在哪種情況下,編譯器都在 定義 處分配儲存空間。對於變數,編譯器確定這個變數佔多少儲存單元,並在記憶體中產生存放它們 的空間。對於函式,編譯器產生 並為之分配儲存空間。函式...