-6

両方とも関数 foo() を持つ 2 つの h ファイルを含むメイン ファイルがあります。main から foo を呼び出すとどうなりますか? 選ばれるのはどっち?

ありがとう

編集:私はあなたの答えを見たので、これについて何を言うことができますか:(実際に機能しています):

///////////// FILE: q7lib.h
#include <stdio.h>
void foo ();
/////////////  END OF FILE
///////////// FILE: q7lib.c
#include "q7lib.h"
void foo () {
    printf ("q7lib: foo");
}
/////////////  END OF FILE

///////////// FILE: q7.h
#include <stdio.h>
void foo ();
/////////////  END OF FILE
///////////// FILE: q7.c
#include "q7.h"
void foo () {
    printf ("q7: foo");
}
/////////////  END OF FILE

///////////// FILE: q7main.c //////////////
#include "q7.h"
#include "q7lib.h"
int main () {
foo ();
return 0; }
///////////// END OF FILE /////////////////
4

2 に答える 2

3

リンカーがプログラムを受け入れないため、関数を呼び出すことはできません。同じ関数の定義が複数ある場合、リンカーはプログラムを拒否します。

于 2013-08-08T12:14:00.240 に答える
0

コンパイラは、関数のあいまいな呼び出しであることを示すエラーを表示します。

于 2013-08-08T12:14:21.147 に答える