У меня возникла проблема с включением файлов. Что я в основном сделал, это программа командной строки в C, которая работает с csv-файлом. Он имеет 5 команд: -menu, -add, -edit, -del, -verify. Все хорошо, за исключением -menu. Что должно произойти, когда я набираю «./passweb -menu» для визуального меню. Эта команда меню должна вызывать новую функцию, и ее необходимо разместить в отдельном файле c (aka menu.c).# включая файлы
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не слишком уверен, как включить файлы для запуска в menu.c, потому что способ, которым я настроен прямо сейчас, passweb.c имеет все функции таких как -add и -edit и т. д. Я знаю, что вам нужно создавать файлы заголовков и т. д., но жалуется, что я дважды объявлял методы, что верно, поскольку я использую функции в файле меню.
Вот некоторые из кода:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cipher.h"
#include "menu.h"
#include "passweb.h"
#define MAXLENGTH 51 //longest length of a single record + 1 =51 bytes
#define SIZEOFDB 1000
#define ENCRYPT 5
typedef struct rec
{
char name[MAXLENGTH];
char pw[MAXLENGTH];
char type[6];
int boolean;
}RECORD;
int add(char *nName, char *nPw, char *nType, RECORD *arr, int size);
void del (char *tName, RECORD *arr, int size);
int edit(char *nName, char *nPw, char *nType, char *tName, char *tPw, RECORD *arr, int size);
int verify (char *tName, char *tPw, RECORD *arr,int size);
Это мой главный файл «passweb.c» и декларируется функции. Позже, в основном, я вызову функцию меню, которая находится в файле menu.c. В функции меню я использую «add», «edit», «del» и т. Д., Которые я написал в этом .c файле. Как вы можете видеть сверху, я включил файлы заголовков.
Что делать, чтобы решить эту проблему? Извините за длинный пост.
Thanks
Какое ваше сообщение об ошибке? Что находится в файле заголовка с декларацией дубликатов? –
'passweb.c: 20: ошибка: конфликтующие типы для 'add'' ' passweb.h: 12: error: предыдущая декларация' add 'была здесь Они подходят для каждой функции. Все в порядке, если я использую функцию, созданную, например, main.c, которая запускает функцию в menu.c, а затем menu.c запускает функцию, созданную main.c? –
Хорошо, это лучше. Вы объявляете функцию дважды. Один раз в файле заголовка и один раз в C-файле. Вы можете только объявить что-то один раз для единицы перевода. –