C語言在頭文件中用extern架起變量溝通的橋樑

//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源文件的效果。不總結了,直接看上面例子知道可以這樣用就行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章