C 在頭函式中定義了全域性變數,在主函式中已經include「xx h」,但是我不能用那個全域性變數為什麼

2021-04-21 01:32:38 字數 1715 閱讀 9237

1樓:匿名使用者

extern mat point_x;這一句只是一個宣告語句,並沒有真正定義 物件 point_x。

你需要在任意一個 原始檔cpp檔案中回定義這個物件,比答如這樣: mat point_x;,去掉前面的 extern即是定義了。

標頭檔案里加宣告是正確的做法,如你的**。而定義一般是 放在原始檔裡的。原始檔才會編譯成一個個中間檔案。標頭檔案不會。標頭檔案一般就是宣告,然後可能被多個原始檔包含。

2樓:

這得具體看**,光說不好說;實在不行你在你主函式那個檔案的上面新增上extern mat point_x;這條語句

在c語言中,一個檔案中定義的 全域性變數,在另一個檔案中能用嗎?

3樓:莫道無情

全域性變數extern可以

copy在其他源程式中使用;全域性變bai量dustatic只能在本程式中使用。zhi

全域性變數是使用相同的記憶體塊在整個dao類中儲存一個值。

全域性變數既可以是某物件函式建立,也可以是在本程式任何地方建立。全域性變數是可以被本程式所有物件或函式引用。

4樓:

包含該全域性變數所在的標頭檔案,並在使用改變數的上方加入外部引用宣告: extern "變數名" 即可

5樓:time大叔vs蘿莉

定義一個static全域性變數就可以了

6樓:請不要惦記我

你說的好像不對吧,

正確的解決辦法:使用extern關鍵字來宣告變數為外部變數。具體回說就是在其中答一個c檔案中定義一個全域性變數key,然後在另一個要使用key這個變數的c檔案中使用extern關鍵字宣告一次,說明這個變數為外部變數,是在其他的c檔案中定義的全域性變數。

請注意我這裡的用詞:定義和宣告。例如在main.

c檔案中定義變數key,在common.c檔案中宣告key變數為外部變數,這樣這兩個檔案中就能共享這個變數key了。

(1)main.c檔案

#include "common.h"

unsigned char key;

(2)common.c檔案:

#include "common.h"

extern unsigned char key;

7樓:匿名使用者

能,只要預先宣告就可以了

8樓:d凌

全域性變數的有效範圍為從定義變數的位置開始到本原始檔結束。

c++的類成員函式如何訪問全域性變數?

9樓:匿名使用者

假如有個全域性變數int a,存放於myfile.h檔案中,則在類中用,需要新增#include "myfile.h"extern int a;即可

10樓:97樂於助人

一般情況下,假如沒有區域性宣告變數,就會呼叫全域性變數,

如果宣告瞭區域性變數,則,區域性變數會遮蔽全域性變數。

除非你指定呼叫全域性變數,加上作用域操作符::

11樓:匿名使用者

之所以叫全域性變數就是因為他在整個程式中都是可見的!就是在整個程式中的所有函式中都是可以直接使用的!

12樓:匿名使用者

可以直接使用。不需要進行別的設定。當然若內部有重名,那需要使用域標示。

c 中如果定義了帶引數的建構函式,那麼在定義物件時,必須初始化嗎

是這樣的。你定義了建構函式,系統就不會用預設的建構函式了。中你定義了自己的帶參建構函式,所以系統的預設建構函式就在編譯時,不會生成了。這個就需要自己定義了。否則的話,date a 這樣使用的時候就會報錯。定義物件的時候它會呼叫相應的建構函式初始化自己。如果沒有引數就呼叫不帶引數的建構函式。如果一個類...

在主函式中定義一維陣列double array10,讀入陣列

include using namespace std void hhh int array 10 void main hhh a for i 0 i 10 i cout include用法 include命令預du處理zhi命令的dao一種,預處 理命令可以將別的源 內容插 專入到屬所指定的位置 ...

c語言後定義函式前面在函式原型中為什麼要加

傳遞引數為陣列或者指標。形參都是以指標形式表示。你的例,第一個引數的實參為int型,第二個的實參可以是int陣列名 第一元素地址 int型指標 指標的值就是地址 int值的地址 x int 是一個型別 就好比如char也是一個型別。double也是一個型別。int型別 int 型別這是兩個型別 加 ...