加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

假设foo.c包含全局定义int secret = 4;

发布时间:2020-12-16 07:16:12 所属栏目:百科 来源:网络整理
导读:我在一篇期末考试的评论中得到了这个问题.我有点难过. (这是在 Linux环境下的PuTTy中编译的) Question: Suppose foo.c contains the global definition int secret = 4; ,and bar.c contains the global definition char secret[16]; What will happen when
我在一篇期末考试的评论中得到了这个问题.我有点难过. (这是在 Linux环境下的PuTTy中编译的)

Question: Suppose foo.c contains the global definition int secret = 4;,and bar.c contains the global definition char secret[16];
What will happen when foo.c and bar.c are linked together? How much memory will be reserved for secret?

我的尝试:我认为既然它们都是同名的全局定义,它们都是强变量而且不会编译(即链接器错误),因为你不能有多个强变量.我感到困惑的是多少内存实际上将保留秘密.也许它是微不足道的,它会是(自char为1字节以来的16个字节)整数的4个字节,总共20个字节?

提前致谢

解决方法

它们是相互冲突的定义,因此它不会链接,因此不会为秘密或其他任何内容保留内存.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读