[語法] 宣告

看板C_and_CPP (C/C++)作者 (語言轉換真麻煩)時間16年前 (2009/05/18 19:11), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
#include <stdio.h> extern int64_t Lcg1_seed; extern int64_t lcg1_p; extern int64_t lcg1_a; int initial_lcg1 (void) { lcg1_p = 2147483647; lcg1_a = 16807; rand(); Lcg1_seed = rand(); return(Lcg1_seed); } int main (void) { int64_t Lcg1_seed; if(Lcg1_seed==0){initial_lcg1();} Lcg1_seed = lcg1_a * Lcg1_seed % lcg1_p; return(Lcg1_seed); } ======================================================== 這是我利用Maple程式自動轉換C語言再修改一些地方 原本在編譯時,出現的是 ======================================================================= In function 'main': 17: error: 'lcg1_seed undeclared(first use in this function) 17: error: (Each undeclared identifier is reported only once 17: error: for each function it appears in.) ======================================================================= 這是說有東西未定義(因為轉換,一些Maple指令被直接轉過來) 改掉之後,結果跳出一連串的 ======================================================================= /Temp/cca3NIi8.o:nlcg.c:<.text+0xbc): undefined reference to '_lcg1_p' /Temp/cca3NIi8.o:nlcg.c:<.text+0xbc): undefined reference to '_lcg1_a' /Temp/cca3NIi8.o:nlcg.c:<.text+0xbc): undefined reference to '_lcg1_seed' … … (大約12行) collect2: ld returned 1 exit status ======================================================================= 我猜大概是沒宣告的問題,在測試一下了以後,在main和initial裡都加入宣告 int64_t *Lcg1_seed; 回應是 ======================================================================= in function 'initial_lcg1': warning: assignment makes pointer from integer without a cast warning: return makes integer from pointer without a cast in function 'main': error: invalid operands to binary * warning: return makes integer from pointer without a cast ======================================================================= 剛看書大概理解一下,請問這是不是說我的Lcg1_seed是指標函數 所以需要一起地方給它存值呢? 如果是的話,那我應該把那個存值的變數放在全區變數那裡才能給main讀取嘛? 那error 說的無效是怎麼無效法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.128.31 ※ 編輯: chrisjon 來自: 123.195.128.31 (05/18 19:12)

05/19 02:11, , 1F
只有一個檔案嗎?把extern拿掉吧。另外變數宣告就給初始
05/19 02:11, 1F

05/19 02:11, , 2F
值會是很好的習慣
05/19 02:11, 2F
文章代碼(AID): #1A4K9cvO (C_and_CPP)
文章代碼(AID): #1A4K9cvO (C_and_CPP)