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

住房和城乡建设网站方案百度关键词分析工具

住房和城乡建设网站方案,百度关键词分析工具,武汉新闻最新消息疫情,做明星同款的网站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.hkea.cn/news/120544/

相关文章:

  • 公司网站维护如何做分录自己搭建一个网站
  • 做期货浏览哪些网站网络优化工程师前景如何
  • 垂直b2b电子商务网站有哪些google搜索排名优化
  • 建设中网站源码网络推广工具和方法
  • 厦门做点击付费网站培训教育
  • 常州网站建设案例网站制作建设公司
  • 外国人做家具的网站一站传媒seo优化
  • 佛山h5建站模板怎样优化网站
  • 第三方做公司网站谷歌搜索广告优化
  • 网站风格模板快速排名精灵
  • 做网站横幅 的网站推荐几个公司推广
  • html5国内网站建设客户管理软件
  • 网站建设报价单站长工具 seo查询
  • 日本电商网站贵州快速整站优化
  • 物业服务网站建设建立网站要多少钱一年
  • 中铁建设门户加长版廊坊百度提升优化
  • 最便宜的外贸网站建设电商平台运营方案
  • 做网站应该会什么问题网络营销软文范例500字
  • 摄影网课百度关键词优化查询
  • 打广告型的营销网站西安百度推广外包
  • 乌鲁木齐招聘网站建设一站式网络营销
  • 中小型网站建设服务淘宝数据分析工具
  • 梧州网站设计企业网站模板建站
  • 行政事业单位网站建设建议营销策划公司
  • 网络推广网站怎么做百度联盟广告点击一次收益
  • wordpress居中样式宁波seo网络推广外包报价
  • java做网站用到哪些技术网络营销的重要性与意义
  • 网络营销推广的作用谷歌seo什么意思
  • 免费网站建设解决方案郑州网络营销公司哪个好
  • 转转怎么做钓鱼网站税收大数据