作者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
1F:推 QQ29:你指的int aaa=5这是定义 你写在main scope就不同了 10/26 20:59
2F:→ QQ29:而你说得出错是? abc找不到aaa? 因为他找不到定义呀 10/26 21:00
3F:→ tyc5116:错误就是写说"无法解析的外部符号 int aaa" 10/26 21:01
4F:推 QQ29:对阿找不到定义 ~就是看到宣告extern那行 可是你用他 却没定 10/26 21:02
5F:→ QQ29:义 10/26 21:02
6F:→ VictorTom:问题是它不是只在main(){}里啊XD 这算是life time与 10/26 21:07
7F:→ VictorTom:scope搞错的问题吗....@_@" 10/26 21:08
8F:→ tyc5116:恩...应该吧...目前搞混中...@@ 10/26 21:12