2014-01-05 8 views
0

Мне нужно вызвать функцию в файле Dist.c в переключении с файлов DB.c и ListOfCity.c, но VS 2010 дает мне ошибку:
ошибка C2143: синтаксическая ошибка: отсутствует ';' перед «типом». (в строке под каждым случаем)

Когда я скомпилирую проект как C++ (вместо C, но мне нужен C не C++), я могу запустить скомпилированный exe-файл, но когда я ввожу номер 1 или 2, он показывает только «Нажмите любую ключ для продолжения ». и не запускать функцию. Заранее спасибо!Вызов функции из другого файла

файл dist.c

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 
#include <stdlib.h> 
#include <crtdbg.h> 
#include "db.h" 

#define _CRTDBG_MAP_ALLOC 

int main(int argc, char** argv) { 
    int choice; 
    do { 
     printf("[1] Index of city\n[2] Add city to end some next\Your choice: "); 
     scanf("%d", &choice); 
     switch(choice){ 
      case 1: 
       void PrintCity(); 
     system("pause"); 
     break; 
      case 2: 
       AddOnEnd(); 
     system("pause"); 
     break; 

      ..... 

      default: 
       printf("Another numer.\n"); 
     system("pause"); 
     break; 

     break; 
     } 
    } while (volba != 0); 

файл DB.h

#include "ListOfCity.h" 
typedef struct Database { 
    int numberOfCity; 
    tListOfCity* list; 
    double **distances; 
} tDatabase; 

tDatabase *LoadDatabase(char* file); 
void DeleteDatabase(tDatabase* db); 
int GiveIndexCity(tDatabase* db, char* city); 
double GiveDistanceBetweenCities(tDatabase* db ,char* city1, char* city2); 
double CountDistance(tDatabase* db, tListOfCity* list); 
void PrintDistance(tDatabaze* db, tListOfCity* list); 

файл ListOfCity.h

#define LENGTH 60 

typedef struct ListOfCity { 
    char city[LENGTH]; 
    struct ListOfCity* next; 
} tListOfCity; 

tListOfCity* CreateCity(char* city); 
tListOfCity *AddOnEnd(tListOfCity* list, tListOfCity* new); 
void PrintCity(tListOfCity* list); 
+0

Можете ли вы показать нам, какая строка дает вам ошибку компиляции? – JaredPar

+2

Вы имели в виду сказать "PrintCity();" вместо "void PrintCity();"? –

+0

@JaredPar в файле Dist.C, строка с void PrintCity(); и AddOnEnd(); – user3161483

ответ

2

Ваше AddOnEnd() декларация принимает 2 параметра:

tListOfCity *AddOnEnd(tListOfCity* list, tListOfCity* new); 

но ваш вызов функции не проходит ???

AddOnEnd(); 

Кроме того,

void PrintCity(); 

Объявляет функцию, она не вызывает функцию.

+0

так что я должен написать его "AddOnEnd (список tListOfCity *, tListOfCity * новый);" вместо "AddOnEnd();" или как? – user3161483

Смежные вопросы