C语言作用域2.0

作用域的临时掩盖

如果有多个不同的作用域相互嵌套,那么小范围的作用域会临时 “遮蔽” 大范围的作用域中的同名标识符,被 “遮蔽” 的标识符不会消失,只是临时失去可见性。

  • 示例代码:
int a = 100;// 函数代码块1
int main(void)
{printf("%d\n", a); // 输出100int a = 200;printf("%d\n", a); // 输出200// 代码块2 {printf("%d\n", a); // 输出200int a = 300;printf("%d\n", a); // 输出300}printf("%d\n", a); // 输出200
}void f()
{printf("%d\n", a); // 输出100
}

static关键字

C语言的一大特色,是相同的关键字,在不同的场合下,具有不同的含义。static关键字在C语言中有两个不同的作用:

  1. 将可见范围设定为标识符所在的文件:
    • 修饰全局变量:使得全局变量由原来的跨文件可见,变成仅限于本文件可见。
    • 修饰普通函数:使得函数由原来的跨文件可见,变成仅限于本文件可见。
  2. 将存储区域设定为数据段:
    • 修饰局部变量:使得局部变量由原来存储在栈内存,变成存储在数据段。
  • 示例:
       int a; // 普通全局变量,跨文件可见
static int b; // 静态全局变量,仅限本文件可见void f1()        // 普通函数,跨文件可见
{}static void f2() // 静态函数,仅限本文件可见
{}int main()
{int c; // 普通局部变量,存储于栈内存static int d; // 静态局部变量,存储于数据段
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/698675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣随笔之两数之和 Ⅱ -输入有序数组(中等167)

思路:在递增数组中找出满足相加之和等于目标数 定义左右两个指针(下标)从数组两边开始遍历,若左右指针所指数字之和大于目标数,则将右指针自减,若左右指针所指数字之和小于目标数,则左指针自加&…

2.23数据与结构算法学习日记(贪心)

洛谷P1109 学生分组 题目描述 有 n 组学生,给出初始时每组中的学生个数,再给出每组学生人数的上界 R 和下界 L (L≤R),每次你可以在某组中选出一个学生把他安排到另外一组中,问最少要多少次才可以使 N 组学生的人数都在 [L,R] 中…

大项目中,某个cpp文件读取所在包路径的方法

在一个比较大的C项目中,我们有很多包,每个包都有一个自己的src、include、CMakeLists.txt和其它文件,比如以下文件结构: project- pkg1- datas- data.json- src- xxx1.cpp- include- xxx1.h - CMakeLists.txt- pkg2- src- xxx2.…

为什么vue3内不使用this

在 Vue 3 中,this 的使用受到了限制,主要是因为在 Vue 3 中引入了 Composition API,它提供了一种更灵活、更可组合的方式来组织和管理组件的逻辑。在 Composition API 中,不再使用传统的选项(如 data、methods、comput…

前端(vue)数据存储方案

引言 本需求文档旨在明确前端项目中的数据存储需求,包括数据类型、数据结构、数据交互方式等。它定义了前端项目中需要存储和处理的数据,以及对这些数据进行访问和操作的要求。 功能需求 数据存储按数据类型分为 持久存储、内存存储(响应式…

AD24-蛇形走线

一、单端蛇形走线 1、公差参数 2、布线-网络等长调节 3、参数说明 ①手工输入绕线的长度 ②参照个网络的长度绕线 ③按照自身设置的规绕线(一般选用) 4、调节 5、最后 二、差分蛇形走线 1、布线-差分对网络等长调节 2、如在选中的时候出现问题,按CtrlD…

273.【华为OD机试真题】园区参观路径(动态规划-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-园区参观路径二.解题思路三.题解代码Python题解…

Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接:https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux应用程序编程 Linux应用程序编程 Linux文件I/O(input/output) Linux文件I/O(五种I/O模型) Linux多进程 Linux多线程 网络通信(s…

集合、List、Set、Map、Collections、queue、deque

概述 相同类型的数据进行统一管理操作,使用数据结构、链表结构,二叉树 分类:Collection、Map、Iterator 集合框架 List接口 有序的Collection接口,可以对列表中的每一个元u尿素的插入位置进行精确的控制,用户可以根…

k8s之nodelocaldns与CoreDNS组件

在 Kubernetes 集群中,通常是先通过 NodeLocal DNS Cache 进行域名解析,如果 NodeLocal DNS Cache 没有找到对应的域名解析结果,才会向 CoreDNS 发起请求。在部署层面上看nodelocaldns会在每个节点上运行一个 DNS 缓存服务,而Core…

Qt事件过滤器

1. 事件过滤器 void QObject::installEventFilter(QObject *filterObj) bool eventFilter(QObject *obj, QEvent *event); filterObj表示事件筛选器对象,它接收发送到此QObject对象(安装事件过滤器的部件对象)的所有事件。筛选器可以停止事件…

SpringCloud-Gateway解决跨域问题

Spring Cloud Gateway是一个基于Spring Framework的微服务网关,用于构建可扩展的分布式系统。在处理跨域问题时,可以通过配置网关来实现跨域资源共享(CORS)。要解决跨域问题,首先需要在网关的配置文件中添加相关的跨域…

Qt应用软件【协议篇】websocket的介绍和代码示例

WebSocket简介 WebSocket是一种网络通信协议,它使得浏览器(客户端)和服务器之间的通信变得更加高效和实时。这种技术特别适用于需要快速、双向交换数据的应用,比如实时聊天应用、在线游戏、实时股票交易平台等。WebSocket协议在2011年被标准化(RFC 6455),它旨在通过一个…

Spring Boot 常用注解大全

以下是Spring Boot中常用的注解及其详细解释以及相应的代码示例: SpringBootApplication: 这个注解用于标识一个Spring Boot应用的主类。它整合了 Configuration,EnableAutoConfiguration 和 ComponentScan。 SpringBootApplication public class Demo…

(六)激光线扫描-三维重建

本篇文章是《激光线扫描-三维重建》系列的最后一篇。 1. 基础理论 1.1 光平面 在之前光平面标定的文章中,已经提到过了,是指 激光发射器投射出一条线,形成的一个扇形区域平面就是光平面。 三维空间中平面的公式是: A X + B Y + C Z + D = 0 A X+B Y+C Z+D=0

矿产达人小程序修复前端

应用介绍 本文来自:矿产达人小程序修复前端 - 源码1688 矿产达人小程序: 矿产小游戏小程序是一款以矿产资源为主题的休闲娱乐游戏。以下是该小程序的主要功能特点: 游戏画面精美:小程序采用卡通化的设计风格,画面色…

程序媛的mac修炼手册-- 小白入门Java篇

最近因为要用CiteSpace做文献综述,间接接触Java了。所以,继Python、C之后,又要涉猎Java了。刺激!! 由于CiteSpace与Java要求版本高度匹配,有个匹配详情明天为大家讲解。总之,我的Java之旅开始于…

我们有在线社区啦!快来加入一起玩儿~

🙌大噶好呀!春节假期转瞬即逝,小陈已经正式开工啦~虽然不知道大家啥时候收假,但是 RTE 开发者社区㊗️诸位: 🧧🐲🙇2024 开工大吉🙇🐲&#x1f9…

企业级SAS盘SSDPM1643a PM1653 Nytro 2050 KPM71VUG3T20固态硬盘

今天给大家介绍一下KIOXIA铠侠PM7系列均衡性硬盘KPM71VUG3T20 存储容量:3200 GB 接口类型:SAS-4 读取速度:4,200 MB/s 写入速度:3,650 MB/s 工作温度:0 ℃ to 75 ℃ 储存温度:40 ℃ to 85 ℃ MTTF&a…

投放效果难衡量?如何精准提升ROI

在当前的移动互联网环境下,App获客和转化成为了许多应用面临的一大难题。随着广告买量成本的不断攀升,用户增长遭遇了瓶颈。同时,由于移动环境广告标识难以完整获取,投放效果的衡量也变得更加困难。那么,如何打破这一困…