另外: 這段代碼有意義嗎? (我是新來的C,所以不知道)char * derp [20]是什麼意思?
char*s1 = derp[0];
char*s2 = derp[1];
我覺得DERP是指向字符數組(即字符串數組),而我試圖讓兩個字符串出陣列。但是,當我嘗試將這兩個char *傳入一個函數(其原型是FindMaxOverlap(char * long,char * short)時,編譯器會拋出一個錯誤,指出存在FindMaxOverlap函數的隱式定義)。
另外: 這段代碼有意義嗎? (我是新來的C,所以不知道)char * derp [20]是什麼意思?
char*s1 = derp[0];
char*s2 = derp[1];
我覺得DERP是指向字符數組(即字符串數組),而我試圖讓兩個字符串出陣列。但是,當我嘗試將這兩個char *傳入一個函數(其原型是FindMaxOverlap(char * long,char * short)時,編譯器會拋出一個錯誤,指出存在FindMaxOverlap函數的隱式定義)。
char *derp[20]:
derp
聲明作爲指針的陣列20
到char
。
char*s1 = derp[0];
聲明s1
的指針char
與第一指針的derp
char
元件初始化。只要derp
的第一個元素被正確分配,例如使用malloc
,它就是有意義的。
你可以通過s1
和s2
您FindMaxOverlap
功能,但derp[0]
和derp[1]
必須指向有效的對象。
當您調用FindMaxOverlap
函數時,必須在源文件中聲明FindMaxOverlap
,例如使用包含文件或通過在文件範圍聲明原型。
另請注意,long
和short
是C語言中的關鍵字,您不能將它們用作函數參數的標識符。
看到cHao的評論,這裏的問題與'char'或者分配無關,只是關於庫包含的內容。 –
謝謝!這是由我使用保留的短和長關鍵字引起的:P – girlrockingguna
是的,這是一個'char *'數組,但編譯器錯誤是無關的(這可能與缺少的頭文件有關)。 – 2013-04-12 23:42:03
請注意,'long'和'short'是保留關鍵字。 –
「隱式定義...」意味着編譯器沒有看到你調用的函數的原型,所以猜測它所要做的和返回的是什麼。不過,這幾乎總是錯誤的。 :P檢查是否包含聲明該函數的頭文件。 – cHao