问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++,我发现一个问题。匿名命名空间里面的变量怎么引用啊?他没有空间名啊啊啊啊,怎么引用

发布网友 发布时间:2022-08-21 09:58

我来回答

1个回答

热心网友 时间:2023-11-21 12:53

在本文件中,直接使用。
在其他文件中无法使用。

当定义一个命名空间时,可以忽略这个命名空间的名称:
namespce {
char c;
int i;
double d;
}
编译器在内部会为这个命名空间生成一个唯一的名字,而且还会为这个匿名的命名空间生成一条using指令。所以上面的代码在效果上等同于:
namespace __UNIQUE_NAME_ {
char c;
int i;
double d;
}
using namespace __UNIQUE_NAME_;

在匿名命名空间中声明的名称也将被编译器转换,与编译器为这个匿名命名空间生成的唯一内部名称(即这里的__UNIQUE_NAME_)绑定在一起。还有一点很重要,就是这些名称具有internal链接属性,这和声明为static的全局名称的链接属性是相同的,即名称的作用域被*在当前文件中,无法通过在另外的文件中使用extern声明来进行链接。如果不提倡使用全局static声明一个名称拥有internal链接属性,则匿名命名空间可以作为一种更好的达到相同效果的方法。

注意:命名空间都是具有external 连接属性的,只是匿名的命名空间产生的__UNIQUE_NAME__在别的文件中无法得到,这个唯一的名字是不可见的.

C++ 新的标准中提倡使用匿名命名空间,而不推荐使用static,因为static用在不同的地方,涵义不同,容易造成混淆.另外,static不能修饰class。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
招商银行的美元天添金怎么样? 天添美蒸馒头为什么开裂呢 上海食堂送菜 邮政跨地区取款手续费多? 谁能告诉我邮政储蓄卡跨省取钱要不要收费啊? 自贡市龙盛世纪仿真模型制造有限公司公司简介 学PS真的很难吗 红烧萝卜牛筋 微信怎么转发公众号部分内容 转发公众号部分内容方法 微信公众号内的视频如何下载?一个F12搞定 晚上睡觉老是做梦!梦见还在上班,不停的上班干活,都连续一个月了!好难受啊 泡大球的原理是什么?可否放在浴缸里装饰 泡大球应该怎么养才能变得更大? 泡大球能用盐水泡吗 把泡大球装在大瓶子里倒上水怎么样把它快速长大 泡大球的化学组成,和原理。详细点哦亲。。。 泡大球是用凉水泡好还是热水泡好 泡大球是什么东西 怎么制作泡大球? 海绵宝宝你知道海星怎么进食吗 手机里有很多文件夹不知道哪些可以清理,有什么软件可以分析 请问哪有文件分析软件 有什么软件可以分析一个软件的全部文件的? 电脑里存有很多文件,它们的扩展名都不一样,可以用什么软件分析它们? 烘干费不费洗衣机? 咖啡霜为什么我用没用?难道有假的咖啡霜吗? 为什么不能同时开多个游戏.. 为什么男人和小三分手后还一直藕断丝连 为什么男友老是要和前女友藕断丝连? 解剖男人分手后藕断丝连心理 苏州的江苏省外国语学校在哪? 苏州吴中区外国语学校 2011年苏州市吴中区中考江苏省苏州市吴中区外国语学校录取最低分 快手账号诊断 幽香……猜成语 梦见 冬瓜 Cisco3550系列交换机的功能特点有哪些? 饰品怎么画啊 怎样用美图秀秀只做一个饰品的图 小饰品怎么上色 木制小饰品上色步骤 三星怎么设置来电彩铃 我的是三星智能手机,要怎样设置彩铃??急啊!!! 三星如何设置手机彩铃 格外……格外……造句 被罩怎么装才是正确的 被罩怎么装好 梦三国中装备合成怎么弄?按什么键?详细步骤!新手求教!!! 如何区分enjoy与happy All happy什么意思? 家里大米长虫怎么办呢