Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3149907
  • 博文数量: 117
  • 博客积分: 10003
  • 博客等级: 上将
  • 技术积分: 5405
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-23 09:34
文章分类

全部博文(117)

文章存档

2011年(1)

2010年(10)

2009年(69)

2008年(37)

分类: LINUX

2008-04-08 16:11:02

当将const关键字用于声明某个常量时,该标识符自动具备internal linkage属性,即只对相同文件内的函数可见,对其他文件中的函数是不可见的。这可以通过如下的示例程序证明

   
//const1.cpp

#include 
<iostream>

using namespace std;

const int a=1;

void funcA()
{

   cout
<<"cout int A in file const2.cpp have value of "<<a<<endl;
}


// const2.cpp

#include 
<iostream>

using namespace std;

const int a=2;
extern void funcA();
void funcB()

{

   cout
<<"cout int A in file const2.cpp have value of "<<a<<endl;
}


int main()
{

   funcA();
   funcB();
}



编译并执行

g++ const1.cpp const2.cpp
.
/a.out

输出结果

cout int A in file const2.cpp have value of 1
cout 
int A in file const2.cpp have value of 2
阅读(3000) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-03-10 20:48:54

对于C++,因为const int 是internal linkage,所以a可以在两个不同的cpp文件中定义。 C默认是external linkage

chinaunix网友2008-04-20 14:23:35

不知道C++为什么要搞成这个样。但这对C是不成立的。