Re: [問題] #define過的東西
提供你一個方法
也請其他高手不吝指教
以下為程式碼
//main.cpp
void file_1();
void file_2();
int N;
int main(){
printf("Enter N:");
scanf("%d",&N); //enter 100
file_1();
file_2();
system("pause");
return 0;
}
//file 1.cpp
extern int N;
void file_1(){
int s;
s=N*2;
printf("s = %d\n",s); //s = 200;
}
//file 2.cpp
extern int N;
void file_2(){
int a;
a=N++;
printf("a = %d\n",a); // a = 101;
}
記得要先把N宣告為全域變數
然後只要不同的file直接用extern就好
如果所有的function都在同一個檔案內
那就是全域變數就可以了
然後每個file或是function內就不能再有N,不然會出問題
這寫法有一個危險就是N有可能會不小心被更動
因為無法被宣告為const int N
如果有方法可以解決這問題,再請高手指教
※ 引述《claude51315 (淼)》之銘言:
: 小弟目前遇到一個問題
: 為了剛開始方便這樣寫
: #define N 100
: 之後寫了許多function都直接拿 N 來用
: 如果之後要讓使用者自己輸入新的 N 執行
: 請問要怎麼處理那些在函式中的 N 呢?? @@
: 只能在宣告函式時多餵一個參數進去嘛?
: 麻煩板上的大大了!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.233.78.140
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1416667732.A.A04.html
※ 編輯: jacky1989 (118.233.78.140), 11/22/2014 22:49:40
※ 編輯: jacky1989 (118.233.78.140), 11/22/2014 22:50:35
※ 編輯: jacky1989 (118.233.78.140), 11/22/2014 23:28:00
→
11/23 09:56, , 1F
11/23 09:56, 1F
有試過,但是編譯會失敗
※ 編輯: jacky1989 (140.136.146.114), 11/23/2014 11:24:36
→
11/23 14:11, , 2F
11/23 14:11, 2F
→
11/23 14:11, , 3F
11/23 14:11, 3F
討論串 (同標題文章)