1樓:風若遠去何人留
根據標頭檔案中變數的定義形式,作用範圍有所不同,有如下幾種情況:
1 在標頭檔案中定義靜態變數,如
static type var = init_value;
其中= init_value部分可以省略。
等效於在每個引用該標頭檔案的原始檔中,定義一個變數名為var, 型別為type的靜態全域性變數。每個檔案中的var變數均歸屬於本原始檔,各檔案中的互不相同。
作用域為引用標頭檔案的原始檔範圍內。
2 在標頭檔案中定義變數,但是不帶初始化值。
type var;
這種情況下,相當於定義了一個全域性變數var, 同時在所有引用該標頭檔案的原始檔中宣告。
其作用域為整個專案的所有原始檔。
在引用了該標頭檔案的原始檔中可以直接使用var, 在沒有引用該標頭檔案的原始檔中,可以通過
extern type var;
進行宣告,從而使用var。
3 在標頭檔案中定義了帶初始化值的變數。
type var = init_value;
當專案中,只有一個原始檔中引用了該標頭檔案時,等同於在原始檔中定義了這個全域性變數,可在該檔案中使用var。 在其它原始檔中可以通過
extern type var;
進行宣告,從而使用var。所以這種情況下變數的作用域也是整個專案。
需要注意的是,這種形式一旦在超過一個原始檔中引用該標頭檔案,則會按照在不同檔案中定義同名全域性變數處理,這時會編譯出錯,自然也就沒有作用域的說法了。
2樓:傷心淚
標頭檔案中變數是全域性變數,是你使用整個main函式過程中都可以呼叫的!變數的作用範圍看位置,在函式體內的只能作用在該函式體內。程式設計序言書上都有
3樓:
標頭檔案中定義的變數是全域性變數,在整個main函式過程中都可以呼叫。而函式體內的變數可稱之為區域性變數只能在該函式體內使用。
4樓:匿名使用者
宣告新的型別名來代替原有的型別名
比如,typedef int interger; 或 typedef float real;
相當於用interger來代表int型別,用real來代表float習慣上把用typedef宣告的型別用大寫字母表示
5樓:匿名使用者
程式**現該變數時會自動應用你定義的值
c++在標頭檔案中宣告一個類,但是在主函式定義該類的變數時卻出錯了。怎麼回事? 20
6樓:匿名使用者
因為實現和使用在一個檔案中,這裡不允許用值引用(防止迴圈定義),可以用指標代替。
寫成 clock *b = new clock();
7樓:匿名使用者
你確定標頭檔案名稱沒有錯誤嗎? 另外 main函式沒有return
c++標頭檔案裡宣告瞭變數、類、函式,在.c原始檔裡還要宣告嗎?原始檔裡的每個變數都要在標頭檔案裡宣告嗎?
8樓:一生吥勝
宣告並不是定義,對於全域性的或公共的變數,都會在一個標頭檔案裡用extern關鍵字宣告變數,表明這個變數是個外部變數,已經再某一個.cpp檔案中定義了.然後在一個原始檔中可以定義該變數,這樣能達到共享的效果.
對於一些函式可以直接在標頭檔案中定義,比如類的行內函數 ,可以直接在類的宣告中定義 。
原始檔裡的函式和變數,並不一定都要在標頭檔案裡宣告,可以直接在原始檔裡宣告和定義 ,但這樣那些變數和函式的作用域就是檔案作用域,就是只能在該原始檔中使用 。
9樓:匿名使用者
#include 這一行你可以看成是把***.**件裡的內容完全copy在這個位置
標頭檔案裡的東西相當於是全寫在原始檔的開頭了,自然不用再宣告。
一般標頭檔案裡放一些比較通用的巨集,類和函式,宣告只要一次就可以了 ,不然會衝突報錯
c可以直接在標頭檔案中,寫函式的定義
可以啊,實現寫在h檔案的類裡的話就是預設內聯的 是什麼錯誤呢?如何在c 標頭檔案中定義函式,然後在原始檔中使用 在text。h標頭檔案中進行宣告 include using namespace std void display int,int 使用該函式來實現輸出 在texxt。cpp中進行定義,注...
C標頭檔案及函式呼叫的問題,如何在C 標頭檔案中定義函式,然後在原始檔中使用
c 的標頭檔案一般為變數宣告和函式宣告,巨集定義,以及include之類的東西。這些東西在matlab裡通通的不需要,變數可以直接拿來用。matlab的庫函式不用宣告也不用include都可以直接用。matlab裡自己定義的子函式只要將函式原始檔和主程式放在同一個工作目錄裡,就可以直接呼叫,不用宣告...
c語言中某檔案裡定義的static變數那麼另
不能,但用extern可以 在c語言中,一個檔案中定義的 全域性變數,在另一個檔案中能用嗎?全域性變數extern可以 copy在其他源程式中使用 全域性變bai量dustatic只能在本程式中使用。zhi 全域性變數是使用相同的記憶體塊在整個dao類中儲存一個值。全域性變數既可以是某物件函式建立,...