[Linker error] undefined reference - C (СИ)
Формулировка задачи:
Будте добры помогите решить проблему с ошибками:
[Linker error] undefined reference to `Vivod(char*, char*)'
[Linker error] undefined reference to `Osnova(void (*)(int, int, char*, char*), void (*)(char*, char*))'
ld returned 1 exit status
Премного благодарен.
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#define N 100
#define Z 10
#define L 100
void Virezanie(int ,int ,char*,char*);
void Osnova(void(int ,int ,char*,char*),void(char*,char*));
void Vivod(char*,char*);
int
main(void)
{
Osnova(Virezanie,Vivod);
getch();
return(0);
}
void
Virezanie(int a,int b,char strn[],char st[])
{
int i;
for (i=a;i<b+a;i++)
st[i-a]=strn[i-1];
for (i=0;i<(Z-1);i++)
{
if(st[i]==' '){
st[i]='\0';
i=Z-1;}
}
}
void
vivod(char print[],char t[])
{
if(strcmp(print,t) != 0 ){
strncpy(t,print,Z);
printf("%s\n",print);
}
}
void
osnova(void Virezanie(int a,int b,char strn[],char st[] ),void vivod(char print[],char t[]))
{
FILE *inp;
char string[L];/*строка которую считывает программа из файла*/
char temp[Z];/*temp */
char strana_user[Z];/*страна пользователя*/
char gorod_user[Z];/*город ----//----*/
char hotel_user[Z];/*отель п-ля*/
char number_user[Z];/*отель п-ля*/
char pay_user[Z];/*отель п-ля*/
char tempS[Z];/*temp для strana_user*/
char tempG[Z];/*temp для gorod_user*/
char tempH[Z];/*temp для hotel_user*/
char tempN[Z];/*temp для number_user*/
char tempP[Z];/*temp для pay_user*/
char strana[Z];/*страна из файла*/
char gorod[Z];/*город который вырезает*/
char hotel[Z];/*отель который вырезает*/
char number[Z];/*номер номера который вырезает*/
char pay[Z];/*цену который вырезает*/
int i,p,n/*c какого символа вырезать*/,k/*по какой*/,b;
inp = fopen("test.txt","r");
while(fgets(string, L, inp) != NULL){
fgets(string,L,inp);
n=1;k=10;
Virezanie(n,k,string,strana);
vivod(strana,temp);/*Выводит страны*/
}
printf("VVeditete stranu>");
gets(strana_user);
fseek(inp,0L,SEEK_SET);
while(fgets(string, L, inp) != NULL){
n=1;k=10;
fgets(string,L,inp);
Virezanie(n,k,string,strana);
strcpy(tempS,strana_user);
if(strcmp(tempS,strana) == 0){
n=11;k=20;
Virezanie(n,k,string,gorod);
vivod(gorod,temp); /*выводит город*/
}
}
printf("VVeditete gorod>");
gets(gorod_user);
fseek(inp,0L,SEEK_SET);
while(fgets(string, L, inp) != NULL){
fgets(string,L,inp);
n=1;k=10;
Virezanie(n,k,string,strana);
strcpy(tempS,strana_user);
if(strcmp(tempS,strana) == 0){
n=11;k=20;
Virezanie(n,k,string,gorod);
strcpy(tempG,gorod_user);
if(strcmp(tempG,gorod) == 0){
n=21;k=30;
Virezanie(n,k,string,hotel);
vivod(strana,hotel);/*выводит отель*/
}
}
}
printf("VVeditete hotel>");
gets(hotel_user);
fseek(inp,0L,SEEK_SET);
while(fgets(string, L, inp) != NULL){
fgets(string,L,inp);
n=1;k=10;
Virezanie(n,k,string,strana);
strcpy(tempS,strana_user);
if(strcmp(tempS,strana) == 0){
n=11;k=20;
Virezanie(n,k,string,gorod);
strcpy(tempG,gorod_user);
if(strcmp(tempG,gorod) == 0){
n=21;k=30;
Virezanie(n,k,string,hotel);
strcpy(tempH,hotel_user);
if(strcmp(tempH,hotel) == 0 ){
n=31;k=33;
Virezanie(n,k,string,number);
vivod(strana,number);/*выводит номер*/
}
}
}
}
printf("VVeditete nomer>");
gets(number_user);
fseek(inp,0L,SEEK_SET);
while(fgets(string, L, inp) != NULL){
fgets(string,L,inp);
n=1;k=10;
Virezanie(n,k,string,strana);
strcpy(tempS,strana_user);
if(strcmp(tempS,strana) == 0){
n=11;k=20;
Virezanie(n,k,string,gorod);
strcpy(tempG,gorod_user);
if(strcmp(tempG,gorod) == 0){
n=21;k=30;
Virezanie(n,k,string,hotel);
strcpy(tempH,hotel_user);
if(strcmp(tempH,hotel) == 0 ){
n=31;k=33;
Virezanie(n,k,string,number);
strcpy(tempN,number_user);
if(strcmp(tempN,number) == 0 ){
n=34;k=43;
Virezanie(n,k,string,pay);
vivod(strana,pay);/*выводит цену за номер*/
}
}
}
}
}
fclose(inp);
}Решение задачи: «[Linker error] undefined reference»
textual
Листинг программы
void vivod(char print[],char t[]) ... void osnova(...)