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

静态变量、变量作用域、命名空间

静态变量

静态变量一般位于程序全局data区,只是编程语言根据它所在的scope做语言级别访问限制。

静态变量和全局变量

  • 可以在C语言一个函数中定义static变量,并比较和全局变量的地址差异。

  • C系语言使用static关键字标示静态变量。

  • PHP使用大写的STATIC关键字标示静态变量。

变量作用域

在世界范围,谈到”李小龙”,大家认为是香港的,在我们村,也有一个”李小龙”,大家一起谈论事情,就指村里的,一言以蔽之,在什么范围表达对应的”李小龙”根据场景。

同名冲突

  • 事实上,在村里聊到”李小龙”有时真的指香港的,究竟指哪里的李小龙,需要明确。

  • C/C++支持变量覆盖。

  • C#不支持变量覆盖。

枚举

  • C和C++早期版本不同枚举定义不能包含相同名字,会产生冲突。C++11引入了新枚举,作用域为类,解决了这个问题,但使用时需要指定类作用域。

命名空间

命名空间减少大型应用程序的命名冲突。世界、国家或者一个家庭,都有自己的“命名空间”,有分而治之和各自为政的味道。

不同命名空间形式

  • C++引入命名空间,C#/Java同样支持。

  • Java使用package对应目录级别,更加严格,C#更加自由,不一定和目录对应。

  • C#引入命名空间static修饰符,以支持静态函数。比如using static System.Console, 这样可以直接用WriteLine而不用加前缀Console.

  • 为了支援多级目录以及清晰的命名空间结构,C#/Java都支持命名空间分级,例如namespace xxx.yyy或package xxx.yyy. 毕竟命名空间不是实在的类型定义,更像是抽象的概念,支持嵌套很自然。

  • 引用多级命名空间写的很麻烦,C#引入using <alias_name> = <namespace xxx.yyy...> 设定精简别名。


若文章对您有帮助,欢迎关注。助您在编程路上越走越好!

微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

http://www.lryc.cn/news/456836.html

相关文章:

  • Android笔记(二十四)基于Compose组件的MVVM模式和MVI模式的实现
  • MySQL 是否支持 XML
  • pikachu靶场总结(四)
  • 24.3 基于文件的服务发现模式
  • 【Java】面向UDP接口的网络编程
  • SRS服务器搭建
  • iMazing只能苹果电脑吗 Win和Mac上的iMazing功能有区别吗
  • ChatGPT可以分析股票吗?
  • Dockerfile搭建镜像
  • Kubernetes-Kind篇-01-kind搭建测试集群
  • 在UniApp中高效处理大量文件请求的策略
  • docker compose入门4—常用命令
  • wps文本框文字居中对齐
  • 注册信息页面
  • 详解Java中的BIO、NIO、AIO
  • CAN和CANFD如何转换和通信
  • QDateTimeEdit Class
  • Windows环境安装CentOS7
  • 用docker启动mysql步骤
  • [Linux] Linux 初识进程地址空间 (进程地址空间第一弹)
  • 力扣21~25题
  • 04. prometheus 监控 Windows 服务器
  • 【机器学习】——决策树以及随机森林
  • 怎么选择合适的数据恢复软件?适用于 Windows 的数据恢复软件对比
  • CI/CD 和 DevOps 工具概述:Jenkins 、Docker 的概述、工作流程、对比
  • 基于SpringBoot+Vue+uniapp的高校教务管理小程序系统设计和实现
  • 如何在 Ubuntu VPS 上从 Apache Web 服务器迁移到 Nginx
  • pikachu靶场总结(一)
  • No.2 笔记 | 网络安全攻防:PC、CS工具与移动应用分析
  • QD1-P8 HTML格式化标签