balado
一般會員
發表:14 回覆:6 積分:4 註冊:2003-12-24
發送簡訊給我
|
**********************以下是main.cpp*********************************
#include "global.h"
#include
using namespace std;
void main()
{
stack parserstack;
{
***********************以下是test.cpp********************************
#include "global.h"
#include
using namespace std;
int lookahead;
int errorinspection=0;
extern stack parserstack;
parse()
{
printf("please key in the text you want to inspect:\n");
stack data;
parserstack.push(260);
}
************************以下是global.h*******************************
#include
#include
#define number 256
#define Lseq 257
#define LL 258
#define op 259
#define Lexp 260
#define DONE 261
extern int lexan();
*********************************************************************
我在main宣告一個stack的形態的parserstack
可是他沒有辦法傳到test.cpp的parse()函式內部使用...
main編譯沒有錯,可是編譯test.cpp時候就會產生104個錯誤...
我想我這樣的宣告應該是不會造成multidefine吧...!
我真的不知道哪邊錯ㄟ?
請大大不厭其煩的解釋給我聽謝謝
有人是說要把在main內的stack宣告成全域變數啦?←不可以用extern嗎
|
taishyang
站務副站長
發表:377 回覆:5490 積分:4563 註冊:2002-10-08
發送簡訊給我
|
|
stanley
一般會員
發表:9 回覆:36 積分:14 註冊:2003-11-20
發送簡訊給我
|
你好:
我想你應該將main宣告的"stack的形態的parserstack",提到全域變數中,才能extern的到,在全域變數中,你也必須在test.cpp中extern stack parserstack這個變數,否則仍無法使用parserstack
|
balado
一般會員
發表:14 回覆:6 積分:4 註冊:2003-12-24
發送簡訊給我
|
**********************以下是main.cpp*********************************
#include "global.h"
#include
using namespace std;
void main()
{
stack parserstack;
{
***********************以下是test.cpp********************************
#include "global.h"
#include
using namespace std;
int lookahead;
int errorinspection=0;
extern stack parserstack;
parse()
{
printf("please key in the text you want to inspect:\n");
stack data;
parserstack.push(260);
}
************************以下是global.h*******************************
#include
#include
#define number 256
#define Lseq 257
#define LL 258
#define op 259
#define Lexp 260
#define DONE 261
extern int lexan();
*********************************************************************
請問一下怎麼把stack的變數宣告成全域押!我還是不懂不是放在main那邊就已經算是全域的變數嗎?可不可以示範給我看..謝謝
sorry麻煩了...
|
stanley
一般會員
發表:9 回覆:36 積分:14 註冊:2003-11-20
發送簡訊給我
|
你好:
#include "global.h"
#include
using namespace std;
stack parserstack;//這裡才是全域變數
void main()
{
//stack parserstack; 在function內宣告的變數或物件全為區域變數
{
|