2009-07-22 3 views
3

Sample1.cエクスターナル機能?

#include "stdio.h" 
int f1(int x, int y) 
{ 
    printf("%d %d", x, y); 
    return x+y; 
} 

Sample2.c

#include "stdio.h" 
extern int f1(int x,int y); 
int main(void) 
{ 
    printf(" %d\n", f1(5,6)); 
    return 0; 
} 

私はターボC/C++コンパイラ(Windows XPの)上で、その後Sample2.cSample1.cファイルをコンパイルしようとしていました。次のエラーが表示されます。

誰でもこの点についてお手伝いできますか?

+0

「のextern」ここでは必要とされていないですTC

のための良い代替品です。参照:http://stackoverflow.com/questions/496448/how-to-correctly-use-the-extern-keword-in-c –

答えて

1

あなたは一緒に両方のオブジェクトファイルをリンクしていますか?リンカーのコマンドラインは何ですか?

5
  1. は、それが死んでいる...ターボCコンパイラを使用しないでください。
  2. あなたは、単一の実行可能に一緒に両方のコンパイラのオブジェクトをリンクする必要があります。
0

これら2つをコンパイルして同じプログラムにリンクする必要があります。

3

ターボCは、実際にはかなり古い製品です。アップグレードを検討することをお勧めします。 Cの世界で

、あなたはオブジェクトファイルにあなたの個々のCファイルをコンパイルする必要があり、その後、一緒にオブジェクトファイルをリンクします。私はTurbo Cを使用していませんが、複数のファイルを関連付けるための「プロジェクトにファイルを追加する」などの仕組みがあると思います。また

、何を持っていることは、私は非常にヘッダファイルを作成する代わりにexternを使用することをお勧め任意の実際の製品に、完全に合法的である一方で。ヘッダファイルを使用すると、同じプロトタイプを宣言して両方の.cファイルに含めることができます。プロトタイプが関数宣言と正確に一致しない場合、コンパイラは警告を発することができます。現在書かれているように、関数の引数に間違いがないと、そのことから診断するのが難しくなります。

0

DJGPPは、gccの実行中のドス

関連する問題