1729_c语言中全局变量与局部变量以及形参重名问题

news2025/4/5 15:15:48

         全部学习汇总: GreyZhang/c_basic: little bits of c. (github.com)

         欢迎路过的YUAN类朋友相互交流,以下是我的联系方式:

Email:greyzhang@126.com

微信:grey0612

         C语言中烦人变量命名冲突时会有怎么样的处理机制?学习过Python之后对此稍有疑惑。Python中直接说明一个变量是全局变量的方法在局部代码块中访问全局量,可是C语言中似乎没有直接的方法。我能够想到的处理方式只能是通过指针,对变量的操作全都通过指针来操作,你想要控制的变量灵活到不能再灵活。

         在C语言中,当全局量与局部量或者形参重名时会有什么现象呢?背课本或者网络搜索的方法已经让我知道了答案,不过我还是想去尝试做一下看看。陆游的一句诗说得好,“纸上得来终觉浅,绝知此事要躬行”。还是写几行代码来做个小小的测试吧!

测试点:

  1. 全局变量与局部变量重名
  2. 全局变量与函数的形参重名

编写代码如下:

执行效果;

         从运行效果中可以得到的结论非常明确,全局变量与局部变量或者形参重名在C语言中都不是什么问题。局部变量会在所能够作用的代码段内把全局量的效果“屏蔽”掉,至于形参,这只是一个形式上的东西,压根不会跟变量有什么冲突。

         这虽不是什么语法上的问题或者功能上的问题,但是会给代码的维护带来一定的困难。至于运行结果是不是自己期待的,在单个函数功能调试的时候肯定也会带来很多的疑惑。

         那MathWorks的PolySpace做个简单的检测看看有么有什么提示,检测结果如下:

Bug Finder:

         检测到两个问题,提示信息都一样,提示两个相同的变量名但是有着不同的作用域。分别说的是局部变量与全局变量冲突,形参与全局变量冲突。

         至于Code Prover的检测则是一路绿灯通过。这并不能拿来说明PolySPace的这两个模块有什么功能优劣的比较,两个是相互补充相辅相成的,测试的侧重点不同而已。不过,也看的出这检测工具的作用,能够把这种容易导致问题的问题点给挖掘出来。对于安全性要求比较高的软件行业,这显然是很有必要的。

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

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

相关文章

sql_server数据库入门学习(一)

🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指…

react-native-vector-icons 安卓和ios 安装

npm install --save react-native-vector-icons ios 将node_modules/react-native-vector-icons/Fonts的文件夹里的内容复制到项目的ios/Fonts文件夹下 选择Ios/Fonts/里的内容 点开Ifon.plist文件,并在右侧添加一项"Fonts provided by application" 在…

(学习日记)2023.04.25

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

[SpringBoot]Knife4j框架Knife4j的显示内容的配置

目录 Knife4j框架 使用 添加依赖:knife4j-spring-boot-starter,版本2.0.9 添加配置:在配置文件中添加knife4j.enable属性的配置,取值为true 添加配置类:类的代码相对固定 访问 Knife4j的显示内容的配置 Knife4j…

赶紧收藏!2023年成人高考【复习大纲】

▶高起点考试题型 高起点-语文 试卷满分为150分。考试用时120分钟。 >>>考试内容: 语言知识及运用、现代文阅读、古代诗文阅读和鉴赏、写作四个方面,考试以测试阅读和写作能力为重点。 >>>备考分析: 语文学习要注意平…

【Python】实现一个类似于Thief的摸鱼软件

一 背景说明 之前用Thief摸鱼(Thief官网),觉得挺好用。对于其最基本的TXT摸鱼,准备在Python中扩展一下功能,使其能够通过爬虫,支持爬取热门小说网站的内容。 软件已经开源到:MoFish软件开源地址 功能是&…

ReID专栏(一) 任务与数据集概述

前言 本专栏针对Closed-world的ReID任务,首先介绍本任务的目标与主要数据集,包括行人重识别、跨模态行人重识别与车辆重识别。然后从三类表征学习的角度解读相关论文,表征学习是本任务的核心,大量重识别工作都致力于提高表征学习的…

uboot源码结构、配置、编译

目录 1.uboot源码结构 1.1uboot源码获取 1.2 uboot的特点 1.3 uboot源码结构 2、uboot配置与编译 2.1uboot配置 2.2 uboot编译 1.uboot源码结构 1.1uboot源码获取 uboot是一个开源的软件。开源有两层含义。一是可以免费用、二是开放源代码 uboot源码下载 http://www.denx…

记一次线上MQ堆积问题处理

背景 线上订单服务10个POD节点,某kafka tpoic原有6个分区。 问题现象 上午11.30左右一波下单高峰,根据分布式消息告警发现有少量消息堆积,但是堆积量不大,持续几分钟后恢复正常。 下午1点后出现新一轮高峰,出现了大…

window环境安装kafka

一、配置系统环境变量 JAVA_HOME 二、配置安装zookeeper 1、下载安装包 https://zookeeper.apache.org/releases.html#download 2、 解压并进入ZooKeeper目录,如:D:\kafka\zookeeper\conf, 将“zoo_sample.cfg”重命名为“zoo.cfg”, 3、打开“zoo.c…

机器学习集成学习——GBDT(Gradient Boosting Decision Tree 梯度提升决策树)算法

系列文章目录 机器学习神经网络——Adaboost分离器算法 机器学习之SVM分类器介绍——核函数、SVM分类器的使用 机器学习的一些常见算法介绍【线性回归,岭回归,套索回归,弹性网络】 文章目录 系列文章目录 前言 一、GBDT(Gradient Boos…

PHP学习笔记第三天

前言 作者简介:不知名白帽,网络安全学习者。 博客主页:不知名白帽的博客_CSDN博客-网络安全,CTF,内网渗透领域博主 网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan 目录 PHP if..else PHP switch PHP数组 PHP数…

【AI 孙燕姿 || AI 音色转换】RVC 使用图文教程:教你如何实现无难度男女换声(伪音)以及 AI 孙燕姿!

最近,视频网站音乐区up主掀了“AI孙燕姿”的风潮。这种使用AI技术提取某位歌手的音色,再用其替换另一位歌手音色的方式,可以实现接近歌手本人翻唱的逼真效果。除孙燕姿外,面对周杰伦、陶喆、陈奕迅、王菲等众多具有独特嗓音的歌手…

YOLOv3: An Incremental Improvement 全文翻译

YOLOv3 论文全篇完整翻译 摘要 本文介绍了YOLO的一些更新内容!我们进行了一系列小的设计改进,以使其更好。我们还训练了一个相当不错的新网络。它比上一版稍微大一些,但更加准确。不过不用担心,它依然保持了快速性能。在320320像…

C++数据结构:图结构入门

C数据结构 线性顺序表(数组) 线性顺序表(链表) Python风格双向链表的实现 散列表简单实现(hash表) 栈和队列的应用 二叉树之一(数组存储) 二叉树之二(二叉搜索树&#x…

驱动开发:内核PE结构VA与FOA转换

本章将继续探索内核中解析PE文件的相关内容,PE文件中FOA与VA,RVA之间的转换也是很重要的,所谓的FOA是文件中的地址,VA则是内存装入后的虚拟地址,RVA是内存基址与当前地址的相对偏移,本章还是需要用到《驱动开发&#x…

第二十篇、基于Arduino uno,获取MFRC-522 RFID射频IC卡模块的信息,并进行识别——结果导向

0、结果 说明:先来看看串口调试助手显示的结果,"卡号"对应的是IC卡的卡号,"1号已进入"表示识别到正确的卡,也就是之前录入的卡号,因此可以应用到门禁。如果是你想要的,可以接着往下看…

OLED和LCD对比

OLED和LCD对比 今天等离子已不复存在,OLED 出现了新的竞争者。在本概述中,我们将了解这两种技术之间的差异、优缺点等。 我们将从简短介绍每种显示技术的工作原理开始。我们将使用术语“面板”,因为显示技术是功能性电视屏幕的一个组成部分…

(字符串 ) 151. 反转字符串中的单词 ——【Leetcode每日一题】

❓151. 反转字符串中的单词 难度:中等 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&…

面向对象编程 实验三 sduwh 子窗口与控件的基本用法、资源的使用 参考实验报告1

源自网络收集,仅供参考 实验三收集到两份完整报告,这是其一,另一份见本专栏下一篇文章。 实验题目 《面向对象程序设计》 实验三 实验题目:子窗口与控件的基本用法、资源的使用 整体目的:理解、窗口之间的消息传送…