2013-05-19 16 views
-2

不太確定如何在標題中更好地解釋這一點。基本上我正在學習如何在C中分離我的代碼。我有一個main,相當於一個來自java的ArrayList類(但轉換爲c並且非常基本)以及一個聲明我的結構和所有正在使用的函數的頭文件。我使用的所有示例代碼出來的文字中,我使用了最新版本的開發的C++爲Windows 8主C程序沒有找到標題和方法

每次我嘗試編譯主我得到: 在功能上主要未定義參考「newList」 [錯誤]標識返回1個退出狀態

這裏是我的代碼:

main.c 
#include <stdio.h> 
#include "ArrayList.h" 

int main(int numParms, char *parms[]){ 
    list myList; 
    myList = newList(myList); 

    printf("End"); 
    return 0; 
} 

ArrayList.c 
#include <stdio.h> 
#include "ArrayList.h" 

list newList(list myList){ 
myList.size = 0; 
return myList; 
} 

list add(list myList, int value){ 
    myList.values[myList.size] = value; 
    myList.size++; 
    return myList; 
    } 

int get(list myList, int position){ 
    int entry; 
    entry = myList.values[position]; 
    return entry; 
} 

int size(list myList){ 
return myList.size; 
} 

list delete(list myList, int position){ 
    int count; 
    for(count =0; count<(myList.size-1); count++){ 
     myList.values[count] = myList.values[count+1]; 
    } 
    myList.size --; 
    return myList; 
} 

void print(list myList){ 
int count; 
printf("Current list contents:\n"); 
if (myList.size > 0){ 
    for (count=0; count<myList.size; count++){ 
     printf("Element %d is %d\n", count, get(myList, count)); 
     } 
    printf("\n"); 
} 
else{ 
    printf("The list is empty\n\n"); 
} 
} 

ArrayList.h 
#define MAX_SIZE 100 
typedef struct{ 
int size; 
int values[MAX_SIZE];  
}list; 

list newList(list); 
list add(list, int); 
int get(list, int); 
int size(list); 
list delete(list, int); 
void print(list); 
+1

如何編譯main.c? – MrROY

回答

0

這實際上是一個連接問題。編譯是可以的,但是當鏈接器嘗試組裝這些塊時,它無法在任何地方找到newList。我的猜測是你沒有編譯文件ArrayList.c並將結果鏈接到你的項目。