2014-06-05 4 views
-3

Je suis nouveau à la programmation si vous ne pouviez pas dire par le code avancé que j'ai prévu pour vous. Je lis un livre sur la programmation en C et j'ai copié ce code comme un exercice et je ne sais pas pourquoi je reçois l'erreur que je suis. S'IL VOUS PLAÎT AIDE !!!référence non définie à "calcyear"

Je reçois une erreur qui indique "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

Déplacer la finale '}' la ligne qui suit immédiatement 'retour 0'. Voter pour fermer comme une faute de frappe. – dasblinkenlight

+0

votre compétence de copie est faible :) –

+0

Mes compétences d'observation sont apparemment encore plus faibles ... – gdubs

Répondre

1

Define int calcYear(int year1) en dehors de la fonction main().

Vous ne pouvez pas définir une fonction dans une autre fonction dans la norme C.

+0

Une fonction n'a pas besoin d'être définie avant d'être appelée, elle doit simplement être déclarée avant d'être appelée; quel OP a fait correctement. Le problème est que la fonction imbriquée est une définition d'une fonction différente de celle qui est appelée. –

+0

Oui j'ai typo'ed 'déclaré', thx @Matt. "La fonction imbriquée": vous acceptez qu'elle est invalide, non? – quantdev

+0

La déclaration (avant 'main') est correcte, la tentative de définition est invalide –