全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:746
推到 Plurk!
推到 Facebook!

sorry有關c語言的stl..不知道可不可以在這邊問?

尚未結案
balado
一般會員


發表:14
回覆:6
積分:4
註冊:2003-12-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-21 13:25:55 IP:163.28.xxx.xxx 未訂閱
**********************以下是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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-21 13:44:54 IP:140.135.xxx.xxx 未訂閱
balado您好:  PO程式碼的方式請參考版規說明  http://delphi.ktop.com.tw/topic.php?TOPIC_ID=48259 煩請修改,謝謝您的配合
stanley
一般會員


發表:9
回覆:36
積分:14
註冊:2003-11-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-21 13:46:04 IP:61.219.xxx.xxx 未訂閱
你好: 我想你應該將main宣告的"stack的形態的parserstack",提到全域變數中,才能extern的到,在全域變數中,你也必須在test.cpp中extern stack parserstack這個變數,否則仍無法使用parserstack
balado
一般會員


發表:14
回覆:6
積分:4
註冊:2003-12-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-21 14:16:48 IP:163.28.xxx.xxx 未訂閱
**********************以下是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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-21 14:46:01 IP:61.219.xxx.xxx 未訂閱
你好: 
#include "global.h"
#include 
using namespace std;
stack parserstack;//這裡才是全域變數
void main()
{
//stack parserstack; 在function內宣告的變數或物件全為區域變數
{
系統時間:2024-05-18 12:04:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!