Re: [問題] #define過的東西

作者: jacky1989   2014-11-22 22:48:48
提供你一個方法
也請其他高手不吝指教
以下為程式碼
//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 呢?? @@
: 只能在宣告函式時多餵一個參數進去嘛?
: 麻煩板上的大大了!
作者: scwg ( )   2014-11-23 09:56:00
在其他檔案裡寫 extern const int N; 不改 main.cpp?
作者: uranusjr (←這人是超級笨蛋)   2014-11-23 14:11:00
scanf 不能接受 const int * 所以不行不改 main.cpp 的話就是 type mismatch 了

Links booklink

Contact Us: admin [ a t ] ucptt.com