3

書店プログラムを作成しようとしていますが、関数の実装でソース コード ファイルに「複数定義」というエラーが表示されます。

ここに私の Book.c ファイルがあります:

#include "Book.h"

void scanBook(book_t* bk) //error here
{
    //implementation here
}

ここに私の Book.h ファイルがあります:

#pragma once
#include <stdio.h>

typedef char* str;    
typedef enum Genre {Education, Business, Novel} genre_t;

typedef struct Book{
    str ISBN;
    str title;
    str author;
    float price;
    int quantity;
    genre_t genre;
} book_t;

void scanBook(book_t* bk);

そして、これが私のmain.cファイルです:

#include "Book.h"
#include "Book.c"

int main()
{
    return 0;
}

Book.c の scanBook 関数でエラーが発生しますが、ヘッダー ファイルと #pragma once をインクルードし、ヘッダー ファイルで関数を宣言したため、原因がわかりません。'scanBook' と obj\Debug\Book.o の複数の定義を言います .... ここで最初に定義します。

ヘルプや説明をいただければ幸いです。

4

2 に答える 2

7

してはいけないこと:

#include “Book.c"

main.c ファイルに。

于 2014-10-24T19:43:46.400 に答える