C语言全局变量那些事儿(2)
发布时间:2021-06-05
发布时间:2021-06-05
第三个例子
这个例子代码同上一个一致,只不过我们将foo.c做成一个静态链接库libfoo.a进行链接,这里只给出Makefile的改动。
test: main.o foo.o ar rcs libfoo.a foo.o gcc -static -o test main.o libfoo.a main.o: main.c foo.o: foo.c clean: rm -f *.o test
运行情况如下:
foo: (&b)=0x080ca008
sizeof(b)=8
b.a=2
b.b=4
main:0x08048250
parent: (&b)=0x080ca008
(&c)=0x080cc084
sizeof(b)=4
b=2
c=0
wait child...
child: sleep(1)
(&b):0x080ca008
(&c)=0x080cc084
sizeof(b)=4
set b=1
c=0
foo: (&b)=0x080ca008
sizeof(b)=8
b.a=1
b.b=4
main:0x08048250
parent: child over
(&b)=0x080ca008
(&c)=0x080cc084
sizeof(b)=4
b=2
c=0