当前位置: 首页 > news >正文

wap网站欣赏经济网站建设

wap网站欣赏,经济网站建设,深圳产品设计公司排名前十强,小型的游戏网站怎么做1.外部变量 如果一个变量除了在定义它的源文件中可以使用外,还能被其他文件使用,那么就称这个变量为外部变量。命名空间作用域中定义的变量,默认情况下都是外部变量,但在其他文件中如果需要使用这一变量,需要用extern…

1.外部变量

如果一个变量除了在定义它的源文件中可以使用外,还能被其他文件使用,那么就称这个变量为外部变量。命名空间作用域中定义的变量,默认情况下都是外部变量,但在其他文件中如果需要使用这一变量,需要用extern关键字加以声明。请看下面的例子:
源文件1如下:

int i = 3;//定义变量i

源文件2如下:

extern int i;//声明一个在其他文件中的定义的外部变量iint main()
{i++;cout << i << endl;return 0;
}

运行结果:
在这里插入图片描述
结果分析:
上述程序中,虽然i定义在源文件1中,但由于源文件2中用extern关键字声明了变量i,因此在源文件2中同样可以使用它。外部变量是可以为多个源文件所共享的全局变量。

对外部变量的声明可以是定义性声明,即在声明的同时定义(分配内存,初始化),也可以是引用性声明(引用在别处定义的变量)。在命名空间作用域中,不用extern关键字声明的变量,都是定义性声明;用extern关键字声明的变量,如果同时指定了初值,则是定义性声明,否则是引用性声明。

例如上述源文件1中声明变量的同时也是对i的定义,源文件2中对i的声明只是引用性声明。外部变量可以有多处声明,但对变量的定义性声明只能是唯一的。

2.外部函数

在所有类之外声明的函数(也就是非常成员函数),都具有命名空间作用域的,如果没有特殊说明,这样的函数都可以在不同的编译单元中被调用,只要在调用之前进行引用性声明(即声明函数原型)即可。当然也可以在声明函数原型或定义函数时用extern修饰,其效果与不加修饰的默认状态是一样的。

【注意】通常情况下,变量和函数的定义都放在源文件中,而对外部变量和外部函数的引用性声明放在头文件中。

【例】:
头文件:

#pragma once
extern int i;
extern void next();

源文件

int i = 3;void other()
{i++;
}
void next()
{i++;other();
}int main()
{i++;next();cout << i << endl;return 0;
}

运行结果:
在这里插入图片描述

3.将变量和函数限制在编译单元内

命名空间作用域中声明的变量和函数,在默认情况下都可以被其他编译单元访问,但有时并不希望一个源文件中定义的命名空间作用域的变量和函数被其他源文件引用。这种需求主要出于两个原因,一是出于安全性考虑,不希望将一个只会在文件内使用的内部变量或函数暴露给其他编译单元,就像不希望暴露一个私有成员一样;二是对于大工程来说,不同文件之中的、只在文件内使用的变量名很容易重名,如果将它们都暴露出来,在连接时很容易发生名字冲突。

对于这一问题,之前的解决办法是在定义这些变量和函数时用static关键字。static关键字用来修饰命名空间作用域的变量和函数时,和extern关键字起相反的作用,static关键字会使得被static修饰的变量和函数无法被其他编译单元引用。

【注意】static的3中用法,当它在局部作用域、类作用域和命名空间作用域时,具有不尽相同的作用。一个共同点是,凡是被static关键字修饰的变量,不管它们在未使用static关键字时它们的生存期如何,在被static关键字修饰之后都有静态生存期。

在IOS C++ 2.0标准中宣布不在鼓励用static关键字解决不把变量和函数暴露给其他编译单元这一问题。取而代之的是使用匿名的命名空间。在匿名命名空间中定义变量和函数,都不会暴露给其他编译单元。例:

namespace //匿名命名空间
{int i;void f(){i++;}
}

【注意】应当不希望被其编译单元引用的变量和函数放在匿名命名空间中

http://www.lakalapos1.cn/news/867/

相关文章:

  • 网站上全景云台怎么做的上海助君网络科技有限公司
  • 做国际网站怎么做wordpress 拍卖 主题
  • 梅州市五华县建设银行网站商务网站规划与设计实训报告
  • wordpress多站点demo个人网页设计
  • mssql网站开发人力资源培训机构
  • 汕头网站建设技术托管济南网站建设开发公司
  • 给个网站谢谢如何做一个单页面的网站
  • 自己怎么做网站视频赚钱织梦笑话网站
  • 官方网站作用郑州做网站的多不多
  • 网站推广的软文wordpress开发人员
  • 郴州网站建设制作深圳市建设安监站网站
  • 怎么用自己电脑当服务器建设网站网页设计与制作教程 刘瑞信 pdf
  • 网站建设与管理基础一链一网一平台
  • 农家乐网站模板360建筑网官网下载平台
  • 微信网站模板下载做网站开发使用百分比的好处
  • wordpress如何备份数据库结构广州网页seo排名
  • 北京网站设计培训班智能建站系统怎么更换网站模板
  • 网站没收录可以做推广吗专业网站托管的公司
  • 怎样安全做黑色彩票网站服装搭配网站源码
  • 网站制作价格范围网站优化有哪些类型
  • 门户网站优化广州seo技术培训
  • 绩溪住房建设网站有人做家具网站中介吗
  • 新网站如何做seo推广做网站要做相应的app吗
  • 杭州网站设计成功柚v米科技wordpress 外链 预览
  • 福州制作网站设计找哪家公司政务网站的建设时期的概述
  • 蒙icp备网站建设用符号做照片的网站
  • 廊坊网站建设冀icp备怎么查网站备案域名
  • 宜宾网站开发招聘全网市场营销服务(上海)有限公司
  • 设计类公司网站怎样建设的网站好优化好排名
  • 网站建设的六个步骤辽宁网站建站系统哪家好