2014-06-05 101 views
-3

如果您無法通過我爲您制定的高級代碼分辨出來,那麼我是新編程的。我正在閱讀一本關於C編程的書,我將這些代碼作爲一個練習複製出來,我不知道爲什麼我會得到我的錯誤。請幫忙!!!對「calcyear」的未定義引用

我得到,指出"file: main.c" "message: undefined reference to calcyear"

/*bigyear.c*/ 

#include <stdio.h> 
#define TARGET_AGE 88 

int year1, year2; 

int calcYear(int year1); 

int main(void) 
{ 
    printf("What year was the subject born?"); 
    printf("Enter as a four digit year (YYYY):"); 
    scanf("%d", &year1); 

    /*calculate the future year and display it*/ 
    year2 = calcYear(year1); 

    printf("someone born in %d will be %d in %d.", year1, TARGET_AGE, year2); 

    return 0; 

    int calcYear(int year1) 
    { 
     return(year1+TARGET_AGE); 
    } 


} 
+1

移動定義另一個函數中的一個函數的最後'}'到緊隨'返回0'行。投票結束爲錯字。 – dasblinkenlight

+0

你的複製技能很差:) –

+0

我的觀察技能顯然更低...... – gdubs

回答

1

定義int calcYear(int year1)main()功能的錯誤。

你不能在標準C.

+0

一個函數在被調用之前不需要定義,只需在被調用之前聲明;哪些OP已經正確完成。問題是嵌套函數是一個被調用函數的不同函數的定義。 –

+0

是的,我錯誤地宣佈了,thx @Matt。 「嵌套函數」:你同意它是無效的,對吧? – quantdev

+0

聲明('main'之前)是正確的,嘗試的定義無效 –