
n3234说:
A name used in more than one translation unit can potentially refer to the
same entity in these translationunits depending on the linkage (3.5) of the
name specifIEd in each translation unit.
有人可以用一个例子解释这一点吗?
这句话到底在说什么?任何人都可以用程序来证明这一点吗?
解决方法 当然!这说的是,如果你有多个源文件(翻译单元)都使用某个名称(例如,变量,类或函数的名称),那么这些不同的文件可能正在讨论相同的变量,类或函数,假设该实体的声明方式使其在不同文件中可见(即,取决于其链接).例如,如果我有这个文件:
A.cpp:
int globalint;int main() { globalint = 137;} 这一个在这里:
B.cpp:
extern int globalint;voID foo() { globalint = 42;} 然后在两个文件中,名称globalint引用在A.cpp中定义的全局int变量globalint.这就是这一点.
但请注意,如果我在没有外部链接的情况下声明globalint,那么这两个文件将讨论不同的变量.例如,在这种情况下:
C.cpp:
static int globalint;int main() { globalint = 137;} D.cpp:
static int globalint;voID foo() { globalint = 42;} 现在,C.cpp中引用的globalint变量与D.cpp中的变量不同,即使它们具有相同的名称.
希望这可以帮助!
总结以上是内存溢出为你收集整理的任何人都可以解释这部分C 0x草案标准吗?全部内容,希望文章能够帮你解决任何人都可以解释这部分C 0x草案标准吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)