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

看板C_and_CPP作者 (幻想的夢境)時間9年前 (2014/11/22 22:48), 9年前編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
提供你一個方法 也請其他高手不吝指教 以下為程式碼 //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
在其他檔案裡寫 extern const int N; 不改 main.cpp?
11/23 09:56, 1F
有試過,但是編譯會失敗 ※ 編輯: jacky1989 (140.136.146.114), 11/23/2014 11:24:36

11/23 14:11, , 2F
scanf 不能接受 const int * 所以不行
11/23 14:11, 2F

11/23 14:11, , 3F
不改 main.cpp 的話就是 type mismatch 了
11/23 14:11, 3F
文章代碼(AID): #1KSA9Ke4 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1KSA9Ke4 (C_and_CPP)