-2

私は自分のプログラムのメイクファイルを作成しようとしていますが、何らかの理由で単にヘッダー ファイルが機能しません。Web を検索し、多数のメイクファイルと注文を試しましたが、機能しません。私は単純なメインファイルを持っています:

#include <stdio.h>
#include <stdlib.h>
#include "func.h"

int main(int argc, char *argv[]) {
    printf("the number of params: %d\n" ,argc);
    p();

    return EXIT_SUCCESS;
}

そして私はヘッダーファイルを持っています:

#include <stdio.h>
#include <stdlib.h>

int p();

そしてfunc.c

#include "func.h"
int p(){
    printf("p");
}

私のメイクファイルは現在次のようになっています。

check: Excersize1.c func.c
     gcc -o check Excersize1.c func.c

問題は、ファイル チェックが作成されたときに関数 p() が実行されないことです。唯一の出力は「... の数」です。

どんな助けでも感謝されます。

注意: コードはうまく機能し、ヘッダー ファイルの使用とそれらをサポートする makefile の作成の例として使用できます。

4

1 に答える 1

0

あなたの問題はヘッダーではなく、標準出力が行バッファリングされていることです。つまり、行末文字を書き込む前に出力が実際に書き込まれるという保証はありません。あなたのprintf()inmain()には line end があり'\n'、すぐに表示されます。の出力はそうでp()はなく、その後に発生する他の出力はありません。

fun.h を次のように変更してみてください

#include "func.h"
int p(){
    printf("p\n");
}

pそして、出力に独自の行にalone が表示されるはずです。

于 2013-11-05T21:19:42.763 に答える