首页 > 其他 > 详细

const对象默认为文件的局部变量

时间:2014-07-19 08:02:35      阅读:270      评论:0      收藏:0      [点我收藏+]

const 定义的对象为一个常量不能被修改。这个想必大家都知道。

这里只是介绍const对象默认为文件的局部变量

        当一个非const变量在一个c或cpp文件中为全局时,它在整个程序中都可以访问。我们在其他的c或cpp文件要用到这个变量,只需要在文件做合适的声明就能使用。

例如:

main.cpp 中全局变量bufsize

#include <iostream>
using namespace std;

extern void function();
int bufsize = 100;

int main()
{
    function();
    return 0;
}

function.cpp中声明了bufsize

#include <iostream>
using namespace std;

extern int bufsize;

void function()
{
    cout<<"function.cpp***bufsize----------"<<bufsize<<endl;
}

编译运行:

g++ -o main main.cpp function.cpp

./main

function.cpp***bufsize----------100       function.cpp能访问到main.cpp中bufsize


现在我们将bufsize设置成const对象

main.cpp

#include <iostream>
using namespace std;

extern void function();
const int bufsize = 100;

int main()
{
    function();
    return 0;
}

function.cpp内容不变

编译运行:

g++ -o main main.cpp function.cpp

/tmp/ccdvo28n.o: In function `function()‘:
function.cpp:(.text+0xb): undefined reference to `bufsize‘
collect2: ld returned 1 exit status

function.cpp中bufsize没有定义

稍作改进:

main.cpp

#include <iostream>
using namespace std;

extern void function();
extern const int bufsize = 100;

int main()
{
    function();
    return 0;
}

function.cpp不变

编译运行:

g++ -o main main.cpp function.cpp

./main

function.cpp***bufsize----------100
运行正常

总结:

         定义的非const全局变量,它属于整个程序,其他程序要访问只要相应的声明即可;

         定义的const全局变量,属于定义的文件,如果想要整个程序都能访问,则要指定const变量为extern。




const对象默认为文件的局部变量,布布扣,bubuko.com

const对象默认为文件的局部变量

原文:http://blog.csdn.net/u010914684/article/details/37938087

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!