//a.c
int foo;
int bar;
//a.h
extern int foo;
extern int bar;
//b.c
int foo=5;
//c.c
#include <stdio.h>
#include "a.c"
int main()
{
printf("%d,%d\n",foo,bar);
return 0;
}
//terminal
allen@xps:~/tmp$ ls
a.c a.h a.out b.c c.c
allen@xps:~/tmp$ rm a.out
allen@xps:~/tmp$ ls
a.c a.h b.c c.c
allen@xps:~/tmp$ gcc -c *.c
allen@xps:~/tmp$ ls
a.c a.h a.o b.c b.o c.c c.o
allen@xps:~/tmp$ gcc *.o -o a.out
allen@xps:~/tmp$ ls
a.c a.h a.o a.out b.c b.o c.c c.o
allen@xps:~/tmp$ ./a.out
5,0
如果寫一個簡單的Makefile
實現自動化編譯:
EXEC = a.out
SRCS = a.c b.c c.c
OBJS = $(SRCS:.c=.o)
$(EXEC): $(OBJS)
cc $(OBJS) -o $(EXEC)
$(OBJS): $(INCL)
clean:
rm -f $(OBJS) $(EXEC)
其實這個筆記只是想測試一下C語言中extern
在頭文件中的一點用法,還有源文件中include
源文件的效果。不總結了,直接看上面例子知道可以這樣用就行。