0

古典的なエラーが発生していますが、なぜ発生するのかまだわかりません...

以下は簡単な説明ですどうやら私はmain.cとsupport.cの2つのCファイルを持っています

support.ci には、1 つの関数 void bla(int input); があります。

main.ci には、support.c の bla を使用するいくつかの機能があり、含まれています

#include<support.c> 

main.c の先頭に

ただし、ここで最初に定義された bla のエラー複数定義のため、プロジェクトをコンパイルできません (eclipse は support.c の bla の定義を指します)。

ヘッダー ファイル support.h を作成し、そこにプロトタイプ extern void bla(int input) を与える必要があることはわかっていますが、そのためには .c ファイルを含める必要があります。

前もって感謝します。

4

3 に答える 3

2

プリプロセッサは の内容をコピーしsupport.c、 に貼り付けてmain.c行を置き換え#include<support.c>ます。したがって、関数には 2 つの定義がありbla、1 つはsupport.cに、もう1 つは にありmain.cます。

解決策は、ソース ファイルをインクルードしないことです。エクスポートする関数の宣言support.hをヘッダー ファイルに入れ、そのヘッダー ファイルを に含めますmain.c

#include "support.h"
于 2013-11-04T07:04:03.337 に答える