Re: [問題] 請問extern可以這樣用嗎

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2009/05/19 11:07), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《abcb1 (買顯卡 7300gt)》之銘言: : 我想宣告一塊記憶體 讓其他function去做存取 : 但是我可能經過幾個function以後才會用到 : ex: main-> functionA -> functionB ->functionC讀取記憶體 : 我不想一直把記憶體位置p傳下去 : 所以我寫了下面這樣的程式 : extern p; 你應該是要打 extern int *p; 可是你這邊宣告成global的指標 你C函式根本就可以直接存取到p不是嘛? 就不用加extern吧! main裡面就不用寫 int *p了 如果你是想要讀取main 指標p 那就只有傳 p到 C函式吧 而你會出現這個錯誤是因為 C函式 認到的p 是extern int *p; 這只有宣告 根本沒有定義他 : int main(){ : int* p; : p = (int* ) malloc (1000 *sizeof (int)); : ................ : } : int C(int n) { : return p[n]; : } : 但是會出現 : [linker erorr] undefined reference to 'p' : 請問各位extern 不能這樣用嗎? : 還是我哪邊寫錯了 : 請各位幫忙解答一下 感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187 ※ 編輯: QQ29 來自: 140.113.207.187 (05/19 11:08)

05/19 11:30, , 1F
好強
05/19 11:30, 1F

05/19 11:46, , 2F
感謝你的回答
05/19 11:46, 2F
文章代碼(AID): #1A4Y9pBq (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1A4Y9pBq (C_and_CPP)