0

外部関数をメインの c ファイルにインポートする際に問題があります。

これが私の最小限のコードです:

/* main.c */

#include<stdio.h>
extern int func() 

int main(){
    extern int func();
}

/*external file with one function that I want to     
import*/

#include<stdio.h>

int func(){
    printf("Hello World Again\n");
}

このようにコンパイルして実行します-gcc main.c、次に./a.outですが、何も起こりません。何か案が ?

4

4 に答える 4

5

funcも含むファイルをコンパイルする必要があります

gcc -Wall main.c external_file.c

(-Wallコンパイラ コマンドは絶対に必要というわけではありませんが、非常に良い方法であることに注意してください)

func他の人が指摘したように、コードを再宣言するだけでなく、呼び出すようにコードを修正する必要もあります。

于 2013-01-16T15:03:25.113 に答える
2

関数を宣言しただけなので、呼び出したことはありません!

extern int func();

関数を宣言します。それを呼び出すには、次のものが必要です。

int main()
{
   func();
} 
于 2013-01-16T15:03:16.050 に答える
0

編集:質問が変更されました。

extern外部変数にのみ使用されます。関数のプロトタイプが必要なだけです。

#include <stdio.h>

void func(void);    /* <-- prototype */

int main(int argc, char * argv[])
{
    func();

    return 0;
}

void func(void){
    printf("Hello World Again\n");
}

いくつかのことに注意してください。のプロトタイプは、C でパラメーター チェックがないことint func()を意味します。これは C++ とは異なります。また、関数から何も返さないので、次のように置き換えますvoid func(void)

于 2013-01-16T15:04:41.180 に答える
0

メイン関数で再度宣言しているだけです..

機能するには関数を呼び出す必要があります..#include

extern int func() 

int main(){
    func();
}

/*external file with one function that I want to     
import*/

#include<stdio.h>

int func(){
    printf("Hello World Again\n");
}
于 2013-01-16T15:03:49.700 に答える