ファイルのインクルードに問題があります。 私が基本的に作ったのは、csvファイルで動作するCのコマンドラインプログラムです。コマンドには、-menu、-add、-edit、-del、-verifyという5つのコマンドがあります。 -menuを除いて、すべてが良いです。 「./passweb -menu」と入力すると、何が起こる必要があるのでしょうか?視覚的なメニューが表示されます。このメニューコマンドは新しい関数を呼び出す必要があり、別のcファイル(別名menu.c)に配置する必要があります。#including files
今私が気づいている問題は、menu.cでファイルを実行する方法をあまりにも明確にしていないということです。なぜなら、私はこれを設定しているので、passweb.cにはすべての関数私はあなたがヘッダーファイルなどを作る必要があることを知っていますが、私はメニューファイル内の関数を使用しているので、実際には2回メソッドを宣言していると不平を言っています。
は、ここでは、コードの一部です:
#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ファイルにあるメニュー関数を呼び出します。 メニュー機能では、この.cファイルに書いた "add"、 "edit"、 "del"などを使用します。 上からわかるように、私はヘッダファイルを含んでいます。
この問題を解決するにはどうすればよいですか? 長い投稿を申し訳ありません。
ありがとうございました
正確なエラーメッセージは何ですか?重複宣言を持つヘッダーファイルには何が入っていますか? –
'passweb.c:20:エラー: 'add'のための競合するタイプ ' passweb.h:12:エラー: 'add'の前の宣言はここにあった これらはすべての機能に対応しています。 menu.cで関数を実行するmain.cなどで作成した関数を使用しても、menu.cでmain.cを作成して関数を実行しても問題ありませんか? –
OKです。関数を2回宣言しています。ヘッダーファイルに1回、Cファイルに1回。翻訳単位ごとに一度だけ宣言することができます。 –