作者tyc5116 (累人啊....)
看板C_and_CPP
標題Re: [問題] extern
時間Mon Oct 26 20:53:39 2009
※ 引述《tyc5116 (累人啊....)》之銘言:
不好意思,這個問題我似乎找到了一點頭緒,不過還有一些觀念要了解一下
我弄了一個更簡單的例子
#include <iostream>
#include "a.h"
using namespace std;
int aaa=5;
int main(){
abc();
return 0;
}
//a.cpp
#include "a.h"
#include <iostream>
using namespace std;
extern int aaa;
void abc(){
int bbb=aaa*5;
cout<<bbb;
}
若我將藍色部份移到main內宣告便會出錯,錯誤訊息和我原來所遇到的很像
我之前一直以為main內的變數生命週期是在程式結束後才消失
(我不知道這樣形容對不對,再麻煩更會解釋的大大說一下)
但目前看來似乎其生命週期只有在main()內(就是把main當一般的函數來看)
我的觀念錯了嗎??
(不好意思,好像是很簡單的問題,不過還是想了解一下)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.18.48.28
推 QQ29:你指的int aaa=5這是定義 你寫在main scope就不同了 10/26 20:59
→ QQ29:而你說得出錯是? abc找不到aaa? 因為他找不到定義呀 10/26 21:00
→ tyc5116:錯誤就是寫說"無法解析的外部符號 int aaa" 10/26 21:01
推 QQ29:對阿找不到定義 ~就是看到宣告extern那行 可是你用他 卻沒定 10/26 21:02
→ QQ29:義 10/26 21:02
→ VictorTom:問題是它不是只在main(){}裡啊XD 這算是life time與 10/26 21:07
→ VictorTom:scope搞錯的問題嗎....@_@" 10/26 21:08
→ tyc5116:恩...應該吧...目前搞混中...@@ 10/26 21:12