函数体中局部变量的定义

关注,为官方帐户加注星标,不要错过令人兴奋的内容StrongHuang微信公众号:stronghuangHuang一些读者提出了这样一个问题:我将IAR EWARM中的函数复制到Keil MDK-ARM之后,发生了编译错误吗?为什么可以编译并传递EWARM,但是MDK-ARM中会出现错误? strongHuang 1函数中变量定义的位置让我们看一下代码中变量a,b,c和d的位置:void Test(void){char a; // printf定义的位置(“ a =%d ”,a);字符b; //由b printf(“ b =%d " b); for(char c = 0; c 10; c ++)// c定义的位置{char d; printf(“ c =%d " c); printf(“ d =%d ”,d); }}上面的变量定义位置,我相信很多人都看过它们,有些朋友在实际编程中经常在这些位置中定义它们。 C编译器将上述代码编译为错误吗?答:根据C89标准编译会导致错误;否则,可能会出错。
根据C99标准进行编译不会导致错误。 strongHuang 2变量定义位置之间的差异我相信很多朋友上大学时都学习过C和C ++,而那些研究C ++的人都知道上述代码变量定义的位置是非常合理的。
但是我不知道您是否知道C89和C99之间的区别。仍然有许多差异。
本文讨论了定义变量位置的区别。 C89标准不允许您在函数的随机位置声明变量。
C语言中的变量声明不能放在任何可执行语句之后,而只能放在函数(可执行语句)的开头。如在先前的代码中一样,需要将其放置在[printf(“ a =%d &quot ;, a);]在此声明之前。
C99和C ++放宽了限制,并允许在函数体中的任何位置声明变量。新的C99标准满足立即在功能主体中定义变量的功能。
但是,请注意变量。范围。
例如以下代码将产生错误:void Test(void){for(char c = 0; c 10; c ++){printf(“ c =%d " c);} printf(" c =%d " c); //这里有一个问题} strongHuang 3 MDK-ARM和EWARM中C99的配置上面提到的问题在于IDE的配置。 EWARM项目默认情况下支持C99标准,而MDK-ARM项目默认情况下不支持C99标准。
因此,如果将支持C99标准的代码复制到不支持C99标准的环境中,则编译将由于该代码而导致错误。 MDK-ARM和EWARM只需要修改配置即可支持C99标准。
1. MDK-ARM配置项目->目标的选项-> C / C ++检查“ C99模式”。 2. EWARM配置项目->选项-> C / C ++编译器->选择语言1只需转到“ C99”。
关于变量定义的位置也有很多争议:有人说,为了与C89标准兼容,它们都写在可执行语句的前面;有些人喜欢C99标准的规定。你怎么认为? ----------- END ------------推荐阅读:C语言实现了面向对象的原理程序员为了高级使用在Embedded Studio中需要掌握几种排序算法-Link调试教程关闭说明微信公众号“ strongerHuang”,后台回复“ 1024”要查看更多内容,请回复“添加群组”按照规定加入技术交流小组。
长按可转到图片中包含的官方帐户。点击“阅读原件”查看更多分享。
欢迎分享,收藏,喜欢和观看。免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供信息存储服务。本文仅代表作者个人观点,不代表本平台的立场,如有任何疑问,请与我们联系,谢谢!

公司: 深圳市捷比信实业有限公司

电话: 0755-29796190

邮箱: ys@jepsun.com

产品经理: 汤经理

QQ: 2057469664

地址: 深圳市宝安区翻身路富源大厦1栋7楼

微信二维码

更多资讯

获取最新公司新闻和行业资料。

  • 定值电阻的功率变化量公式 定值电阻的功率变化量公式为:�������=�������×100%VinVout=IinIout×100%其中,���Vin和����Vout分别为定值电阻两端的电压,���Iin和����Iout分别为定值电阻两端的电流。该公式表示,当定值电阻两端...
  • 电阻应变片主要有金属应变片和半导体应变片两种 金属应变片电阻变化主要尤其结构尺寸变化所致,而半导体是利用半导体的物理效应即压阻效应工作的,金属应变片的优点1.结构简单频率特性好,2,价格低廉品种多样,3可在高(低)温、高速、高压、强烈振动、强磁场及核辐射...
  • 屏蔽特定数值功率电感:220与330的考量 在电子设计中,选择合适的功率电感对于电路性能至关重要。当涉及到屏蔽功率电感时,尤其需要考虑其标称值以确保最佳性能。根据您的需求,我们关注的是屏蔽功率电感中的两个具体数值:220和330(假设单位为μH微亨)。这...
  • 光颉Viking AL系列电感器:高稳定性与高密度布局的理想之选 深入解析光颉Viking AL系列电感器的技术亮点在高速数字电路与高密度PCB设计中,电感器不仅要具备出色的电气性能,还需在有限空间内实现高效布局。光颉Viking推出的AL系列电感器,专为高稳定性和高集成度场景打造,是现代电子...
  • 整流变压器直流电阻检测标准及其在工业应用中的实践意义 整流变压器直流电阻检测的行业标准与应用背景在冶金、电解、轨道交通、大型工业电源等高功率直流应用场景中,整流变压器承担着将电网交流电高效转换为所需直流电压的关键任务。其运行可靠性直接关系到生产线的安全与...
  • 电阻定义 电阻定义分类定义:导体对于电流的阻碍作用叫做该导体的电阻,它是导体本身的一种性质,通常用字母R表示,电阻的单位是欧姆,简称Ω。1、结构分类按照结构电阻可以分为固定电阻器、可变电阻器以及特种电阻器,他们具有...
  • 电阻的定义是什么? 电阻,用中学的物理定义说,就是电路中某元件阻碍电流流通的能力。不过,这个定义显然不是很严密。根据欧姆定律,我们知道电阻R与电压U和电流I的关系是: R=U/I 。这个式子告诉我们,测量电阻并不一定非要停...
  • 标准线性产品定义与应用 标准线性产品通常指的是在工业生产和制造过程中遵循特定规范和标准的一类线性产品。这类产品因其高度一致性和可预测性,在多个领域得到广泛应用。例如,在电子行业,标准线性产品可以是电阻、电容等元件;在建筑行业...
  • PTTC聚鼎PG25E-L05气体放电管:小体积大能量的防护新选择 PTTC聚鼎PG25E-L05气体放电管深度评测作为一款紧凑型高性能气体放电管,PTTC聚鼎PG25E-L05凭借其小巧的外形与强大的过压抑制能力,成为当前电子设备小型化趋势下的理想选型。尤其适合空间受限的便携式设备与嵌入式系统中使用。...
  • 防护式开关的定义和应用领域 防护式开关是一种在设计上具备额外保护机制的开关设备,旨在提高操作的安全性和可靠性。这种开关常用于需要防止意外触碰或环境因素干扰的应用场景中。例如,在工业自动化、家用电器、机械设备以及电子设备等领域,防...
  • 数显压力开关:现代工业自动化控制的重要组成部分 数显压力开关是一种现代化的压力控制设备,它结合了传统机械式压力开关的实用性与数字技术的精准性。以成瑞品牌的数显压力开关为例,这类产品通常具备高精度的压力测量功能,能够实时显示当前系统内的压力值,并在达...
  • 如何优化贴片微型元件在高速网络电路中的布局设计 优化贴片微型元件布局提升信号质量在高速网络电路设计中,贴片微型网口变压器与电阻的布局直接影响整体性能。合理的布线策略可显著降低电磁干扰(EMI)并提高信号完整性。1. 网口变压器的布局原则对称走线: 变压器两端...
  • SOD-123封装二极管在RS-232通信电路中的选型与布局优化指南 基于SOD-123封装二极管的RS-232电路设计实践在构建高性能、高可靠性的RS-232通信模块时,正确选择和布置SOD-123封装二极管是保障系统长期稳定运行的关键环节。以下从选型、布局到测试进行全面分析。1. 二极管选型关键参数选择S...
  • 分立组件中的晶体管与二极管数组协同应用解析 分立组件中晶体管与二极管数组的协同工作原理在现代电子系统设计中,分立组件如晶体管和二极管数组被广泛应用于信号处理、电源管理及逻辑控制等关键环节。其中,晶体管作为核心的开关或放大元件,而二极管数组则用于...
  • WAN2012F245C04与WAN1608H245H04性能参数深度解析:高效稳定的数据传输解决方案 引言在现代工业自动化与通信系统中,高性能的通信模块是保障数据稳定传输的关键。WAN2012F245C04与WAN1608H245H04作为两款广泛应用的工业级通信设备,凭借其卓越的性能和可靠性,受到众多企业的青睐。本文将从多个维度对这两款...
  • UEC液体压差开关:工业流体控制中的关键组件 UEC液体压差开关是一种专门用于监测和控制流体系统中压力差异的设备。这种开关在工业应用中非常常见,特别是在需要确保液体流动顺畅且安全的场合,比如冷却系统、空调系统以及各种需要精确控制液体流量的过程控制系统...
  • 为什么有些压敏电阻可以用于半导体制造过程中的质量控制? 压敏电阻可以用于半导体制造过程中的质量控制,其原理是基于压敏电阻的压敏特性和半导体制造过程中的电压变化。在半导体制造过程中,电压变化可能会导致产品质量的变化。例如,在光刻过程中,电压变化可能会导致光刻...
  • 从毫欧到欧姆:理解电阻单位体系及其工程意义 电阻单位体系全面解析:毫欧与欧姆的关系在现代电子系统中,电阻值范围极广,从微欧到兆欧不等。掌握不同单位间的换算,是正确选型、测试和分析电路的前提。1. 基础单位关系梳理• 1 兆欧(MΩ) = 1,000,000 欧(Ω)• 1 千...
  • 标准200电焊机中的电容数量及其作用 标准200电焊机通常配备有若干个电容以确保其稳定运行和高效工作。这类设备中常见的电容数量一般为两个或三个,分别用于不同的功能。其中一个是启动电容,主要用于帮助电机平稳启动;另一个是运行电容,它在电机运行过...
  • 特定应用时钟与差分时钟缓冲器在高速数字系统中的关键作用解析 特定应用时钟与差分时钟缓冲器的重要性在现代高速数字系统中,时钟信号的完整性直接影响系统的性能与稳定性。特定应用时钟(Application-Specific Clock)和差分时钟缓冲器(Differential Clock Buffer)作为核心组件,被广泛应用于通...