这两者有什么不同?
CPP文件:
namespace
{
int var;
}
Run Code Online (Sandbox Code Playgroud)
要么
int var;
Run Code Online (Sandbox Code Playgroud)
如果两者都放在cpp文件中?我们在匿名命名空间中放置一个变量是不正确的,因此它可以仅用于该文件?但是,如果我们将一个全局变量放在一个cpp文件中,那个变量也不是私有的,因为你从来没有对.cpp文件进行包含吗?
Did*_*set 29
在第二种情况下,当您不使用匿名命名空间时,如果任何其他cpp文件声明了extern int var;,它将能够使用您的变量.
如果使用匿名命名空间,则在链接时,另一个cpp文件将生成未定义的引用错误.
| 归档时间: |
|
| 查看次数: |
9502 次 |
| 最近记录: |