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

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。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值