我在一篇期末考试的评论中得到了这个问题.我有点难过. (这是在
Linux环境下的PuTTy中编译的)
Question: Suppose
foo.c
contains the global definitionint secret = 4;
, andbar.c
contains the global definitionchar secret[16];
What will happen whenfoo.c
andbar.c
are linked together? How much memory will be reserved forsecret
?我的尝试:我认为既然它们都是同名的全局定义,它们都是强变量而且不会编译(即链接器错误),因为你不能有多个强变量.我感到困惑的是多少内存实际上将保留秘密.也许它是微不足道的,它会是(自char为1字节以来的16个字节)整数的4个字节,总共20个字节?
提前致谢
最佳答案 它们是相互冲突的定义,因此它不会链接,因此不会为秘密或其他任何内容保留内存.