静态库和动态库里的全局变量(或类的静态成员变量)共享和独立的问题

所需积分/C币:48 2012-11-01 15:10:42 82KB RAR

测试代码说明以下两个问题: 1. 工程中包含静态库A,动态库B,可执行程序C。C依赖于A和B,而B依赖于A。在A中定义有全局变量X(或类的静态成员变量),则在动态库B中访问的X,与可执行程序C中访问的X是同一个变量还是两个不同的变量? 答案:是两个不同的变量。 2. 工程中包含动态库A,动态库B,可执行程序C。C依赖于A和B,而B依赖于A。在A中定义有全局变量X(或类的静态成员变量),则在动态库B中访问的X,与可执行程序C中访问的X是同一个变量还是两个不同的变量?(注:所有库都在同一进程中使用) 答案:是共享同一个变量。即:在A是动态库的这种情况下,B和C访问到的X是同一变量。 博文地址

...展开详情

评论 下载该资源后可以进行评论 10

June_Hou 是window 编程代码.不是linux c,很有参考意义,不过第一个结论,在linux 中并不是一样: 1.最终生成的可执行程序,全局变量在编译链接的时候已经确定好,如果静态a定义与动态库b全局变量重名,那么编译器会选择先链接的那个库的全局变量,后面再出现重义,则忽略.无论怎么,一个可以执行的程序,对于重名的定义,都只留了一个符号,重名函数也是一样的. https://blog.csdn.net/u012385733/article/details/80915360
2018-07-05
回复
织梦科技 简单的例子, 供懒人参考一下
2016-10-05
回复
feng9876 最简单的例子了
2015-09-07
回复
clanbin_cpp 谢谢,学到了点东西
2014-11-16
回复
风一样的逗比 挺好的,帮助挺大的
2014-11-10
回复
阿鼎 最简单的例子了
2014-01-20
回复
lanyulianying 谢谢,很好用
2013-11-15
回复
思睿3 确实很有用处 ,受教了
2013-07-05
回复
I_Have_123456 确实有帮助
2013-03-21
回复
softwareceo 谢谢,很有帮助
2013-03-18
回复
img
峻峰飞阳
  • GitHub

    绑定GitHub第三方账户获取
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!

关注 私信 TA的资源

上传资源赚积分,得勋章
    最新推荐