使用char我有3個.c文件main.c中,fun1.c,fun2.c在不同的文件用C
char buff[50];//in fun1.c
char *arg; //in fun2.c
arg = strstr(buff, "001"); //in fun2.c
我想打印在fun2.c buff
,但它給出了一個錯誤buff
未經宣佈,儘管我在fun1.h中聲明它爲extern char buff[];
fun1.c和fun2.c中都有函數每個都有
使用char我有3個.c文件main.c中,fun1.c,fun2.c在不同的文件用C
char buff[50];//in fun1.c
char *arg; //in fun2.c
arg = strstr(buff, "001"); //in fun2.c
我想打印在fun2.c buff
,但它給出了一個錯誤buff
未經宣佈,儘管我在fun1.h中聲明它爲extern char buff[];
fun1.c和fun2.c中都有函數每個都有
很難說你的程序有什麼問題,但這裏是一個鏈接2 .c
文件與一個.h
文件。
頭文件functions.h
:
#include <stdio.h>
extern void func();
當我用extern
提供其它文件的定義。
2.現在,functions.c
文件使用這種頭文件:
#include "functions.h"
void func() {
printf("hello");
}
這需要#include
頭文件,並使用該函數void()
打印的消息。
最後,main.c
文件,該文件鏈接一起:
#include <stdio.h>
#include <stdlib.h>
#include "functions.h"
int main(void) {
func();
return 0;
}
這也需要function.h
因爲它使用func()
。然後,您可以編譯代碼:
gcc -Wall -Wextra -g main.c functions.c -o main
你也可以看看makefile文件,這將減少這一長期編譯行簡單make
。
編譯命令應該是'gcc -Wall -g main.c functions.c -o main' –
你有沒有按照正確的順序包含這些文件? –
我在fun1.c中包含fun1.h文件。我必須將它包含在fun2.c中嗎? – saurabh
@saurabh如果我們能夠粗略地看到你在每個'.c'文件中包含'#include',將會更容易。 – RoadRunner