1樓:
不是extern的錯誤。
extern bool islbuttondown; //滑鼠左鍵是否按下
extern signed int *ecgdata; //選取的資料
extern bool isdraw; //是否畫橡皮筋矩形
extern bool isdrawline; //是否畫參考線
extern bool isdrawfft;
基本就是一樓的答案。不過一樓第二行有錯,不應該有bool。
2樓:匿名使用者
extern bool islbuttondown; //滑鼠左鍵是否按下
extern bool signed int *ecgdata; //選取的資料
extern bool isdraw; //是否畫橡皮筋矩形
extern bool isdrawline; //是否畫參考線
extern bool isdrawfft;
要改成這樣的。
3樓:雙色心
錯誤 2 error c4430: 缺少型別說明符 - 假定為 int。注意: c++ 不支援預設
雖然我都忘了extern是定義的什麼的,但從這個報錯資訊來看,也看得出來,沒個int之類的不行。因為c++如果不指定乙個變數型別,它不會預設給你安排乙個。(vb就會)
好多年不程式設計了,說錯勿怪。
4樓:匿名使用者
所謂extern就是說明這個變數在別的檔案中宣告過了,在此引用。所以找到你這幾個變數宣告的地方,拷貝過來,每個前面加個extern即可。
c++ 關於 extern的小問題
5樓:匿名使用者
第一次是定義,第二次是宣告。
6樓:apple林
extern可以置於變數或者函式前,以表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。
7樓:匿名使用者
int a ;已經宣告了,所以再宣告應該不行了
c語言中關於extern 宣告外部函式的問題 20
8樓:
在cxx中聲名一下就可以了!或者寫個頭檔案,任何寫在.c中的函式,cxx
9樓:匿名使用者
同時在乙個工程裡開啟就可以了
10樓:風雲
建議寫成標頭檔案的形式,就不會有問題了
11樓:匿名使用者
外部函式??? extern只宣告變數的吧。外部函式只需要包含它所在的標頭檔案就可以
例如 有 file1,file2,file3 ,3個檔案在file1中宣告了乙個函式 func( int a,int b);
那麼在file2,file3如果需要使用file1中的func函式時,需要在file2,file3檔案的開始位置,寫入#include"file1"才可以正確使用
12樓:
你把其他三個檔案用include包含進來就不會有問題了
關於乙個簡單的含extern程式的問題,求解疑,謝謝
13樓:風若遠去何人留
在你的**中,et.cpp和pt.cpp是兩個獨立的檔案,所以在main中引用的標頭檔案stdio.h與這兩個檔案無關。
要在et和pt中使用printf或gets,需要分別在這兩個檔案裡面引用
#include
否則就會出錯。
14樓:
錯誤資訊為:未說明識別符號。
出現以上原因只有乙個沒有宣告就直接使用了。
編譯的時候由於是先乙個乙個檔案編譯的,即使main.cpp中已經使用標頭檔案stdio.h
但是在其他檔案這個編譯時由於未使用標頭檔案stdio.h導致出現未說明識別符號這個錯。
解決方法是各個檔案頭新增標頭檔案stdio.h
還有就是以下兩個函式宣告引數做如下修改更好,
理由是這兩個函式引數只是單個char
extern void enter_string(char str);
extern void print_string(char str);
希望對您用幫助
15樓:匿名使用者
你在et.cpp檔案中使用了gets,卻沒有包含#include
同理pt.cpp檔案。
你不包含,在該檔案中就不會識別gets和printf
c++中extern問題
16樓:
extern int a;不是宣告,更不是定義,是說明——意思是我這裡要用到另乙個檔案中的變數a。當然a在這裡可見,也能得到原檔案中的值;在這裡若改變了a的值,原檔案中的a的值也就改變了。
17樓:匿名使用者
你自己寫個簡單的程式除錯一下就清楚了。
**下c++的宣告和定義問題,關於extern
18樓:q嘿仔
我剛才做了乙個實驗:
//a.cpp
#include
std::string i;
//b.cpp
#include
#include
extern std::string i;
int main ()
執行結果為:
(上面是一空行:由於末尾用了endl)
如果沒有a.cpp這個檔案,執行出錯
這是一對實驗(有沒有a.cpp檔案)
可得出這樣的結論:
a.cpp中std::string i;是定義(本來就是)
b.cpp中extern std::string i; 則是宣告(你的問題)
先別急,這只是實驗結果。我們還需要理論依據,那麼下面就試著解釋一下:
下面是另乙個例子(也是第二個實驗)
你應該知道內建型別(int等)如果作為全域性變數時,定義的同時也就初始化了(乙個內建型別有其對應的預設值;如果你將自定義型別也看成內建型別,那麼就等於說,乙個自定義型別有其對應的預設值(由預設建構函式完成))。如
//c.cpp
int i;
//d.cpp
#include
extern int i;
int main ()
那麼在這裡int i; 就是定義(並且初始化了i,初始值為0)
因而輸出結果為
0//這個實驗的執行結果符合理論依據。
(我使用的編譯器是visual studio 2008)
從這兩個實驗來看:(將兩個「預設」等同起來)
int i;
std::string i;
都可以作為初始化i的定義性語句。
那麼extern int i;
extern std::string i;
也具有定義行為(這個很明顯與extern的用法相悖)
在以上兩個試驗中:int 與 string 有「區別」嗎?所有的**都一樣只不過把std::
string 換成了 int而已!如果你能解釋int的情況,那麼我想std::string問題也就迎刃而解了!
於是我個人總結出乙個結論:
不論是內建型別還是自定義型別,前面有extern關鍵字,如果沒有顯式地初始化引數(即就是自定義型別的預設建構函式被extern遮蔽了,不起初始化的作用),那麼就按宣告對待。
可能我的描述很混亂,希望你好好看看上面的例子,就明白了!
注意:從這裡可以看出來預設建構函式的特殊性!
19樓:
string 實際上是:
typedef basic_stringstring;
extern std::string name; 屬於宣告如果是 extern std::string name("zhang3li4"); 另當別論。
extern 相當宣告為 全域性量 (外部於本程式塊)。
關於鸚鵡的問題,關於鸚鵡問題
40元以下的只有虎皮了吧.虎皮單隻的 在30元左右,牡丹鸚鵡單隻的 在70 80不等。一般能說話的多為大型鸚鵡,小型鸚鵡會說話的很少,不過加倍的訓練後,也是有可能學會說話的。虎皮鸚鵡的品種有很多,顏色有綠,藍,黃,紫,白等,虎皮鸚鵡比起牡丹鸚鵡來要安靜的多,而且更加容易上手。辨別公母 未成年的虎皮公...
關於用電問題,關於數學的問題
電價分類說明 一 居民生活用電 為城鄉居民住宅家庭生活所使用的電力,包括居家照明 家用電器和溫度調節等用電 但興辦家庭商業,其經營性用電執行商業用電 高校學生公寓和學生集體宿舍用電。二 非居民照明用電 為執行居民生活用電 商業用電和大工業用電中車間以外的照明 含市政路燈 亮化工程等用電 辦公設施用電...
關於鸚鵡的問題,關於鸚鵡問題
好多的問題哦!鸚鵡感冒會死,禽流感嘛!如果是雌雄一對的話他們隨時都會有親暱地舉動,不是一對的話也會有這樣的舉動,甚至把平常的一些啄咬也看成是親暱,您的這一雙鳥是屬於虎皮鸚鵡,但是品種不怎麼好,虎皮花紋消退得太嚴重,區分鳥類的雌雄必須要有一定的經驗,光聽商家的介紹是不一定的。個人認為作為一般剛接觸養鳥...