报错
ld: Undefined symbols:
_GuessNumber, referenced from:
_main in main-54809c.o
_MakeNumber, referenced from:
_main in main-54809c.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
代码如下
//main.c
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include "guess.h"
int main(void)
{
int number;
char reply;
srand(time(NULL));
do
{
number=MakeNumber();
GuessNumber(number);
printf("Do you want continue(Y/N or y/n)?");
scanf(" %c",&reply);
}while(reply=='Y'||reply=='y');
return 0;
}
//guess.h
void GuessNumber(int number);
int IsRight(int number,int guess);
int IsValidNum(int number);
int MakeNumber(void);
//GuessNumber.c
#include <stdio.h>
#include "IsRight.h"
#include "IsValidNum.h"
void GuessNumber(int number)
{
int guess,ret;
int count=0;
int right=0;
do
{
printf("Try%d:",count+1);
ret=scanf("%d",&guess);
while(ret!=1||IsValidNum(guess))
{
printf("Input error? \n");
while(getchar()!='\n');
printf("Try%d:",count+1);
ret=scanf("%d",&guess);
}
count++;
right=IsRight(number,guess);
} while (!right&&count<MAX_TIMES);
if(right)
{
printf("Congratulation!You're so cool!\n");
}
else
{
printf("Mission failed after %d attemps.\n",MAX_TIMES);
}
}
//GuessNumber.h
void GuessNumber(int number);
//MakeNumber.c
#include <stdio.h>
#include <assert.h>
#include "MakeNumber.h"
int MakeNumber(void)
{
int number;
number=(rand()%(MAX_NUMBER-MIN_NUMBER+1)+MIN_NUMBER);
assert(number>=MIN_NUMBER&&number<=MAX_NUMBER);
return number;
}
//MakeNumber.h
#define MAX_NUMBER 100
#define MIN_NUMBER 1
int MakeNumber(void);
//IsValidNum.c
#include <stdio.h>
#include "IsValidNum.h"
int IsValidNum(int number)
{
if(number>=MIN_NUMBER&&number<=MAX_NUMBER)
{
return 0;
}
else
{
return 1;
}
}
//IsValidNum.h
#define MAX_NUMBER 100
#define MIN_NUMBER 1
int IsValidNum(int number);
//IsRight.c
#include <stdio.h>
#include "IsRight.h"
int IsRight(int number,int guess)
{
if(guess<number)
{
printf("Wrong!Too small!\n");
return 0;
}
else if(guess>number)
{
printf("Wrong!Too big!\n");
return 0;
}
else return 1;
}
//IsRight.h
#define MAX_TIMES 10
int IsRight(int number,int guess);
//guess.h
void GuessNumber(int number);
int IsRight(int number,int guess);
int IsValidNum(int number);
int MakeNumber(void);