函数体中局部变量的定义

关注,为官方帐户加注星标,不要错过令人兴奋的内容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

邮箱: momo@jepsun.com

产品经理: 李经理

QQ: 2215069954

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

微信二维码

更多资讯

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

  • 数字卫星广播如何改变传统媒体格局?深度剖析其影响与挑战 数字卫星广播对传统媒体的冲击与重构近年来,数字卫星广播的普及正在深刻重塑传统广播电视生态。它不仅提升了节目质量,也改变了用户的收视习惯与媒体消费模式。对传统广播系统的冲击频道数量激增:数字卫星平台可提...
  • 变压器的定义       变压器是变换交流电压、电流和阻抗的器件,当初级线圈中通有交流电流时,铁芯(或磁芯)中便产生交流磁通,使次级线圈中感应出电压(或电流)。变压器由铁芯(或磁芯)和线圈组成,线圈有两个...
  • 如何优化DC-DC外部功率级的布局与选型?实战指南 DC-DC外部功率级布局与元器件选型实战策略在高性能电源设计中,外部功率级的布局与元器件选型直接影响系统的稳定性、效率与电磁兼容性(EMC)。以下从多个维度提供实用建议。1. 布局关键原则减少环路面积:功率回路(VIN→...
  • 定值电阻的功率变化量公式 定值电阻的功率变化量公式为:�������=�������×100%VinVout=IinIout×100%其中,���Vin和����Vout分别为定值电阻两端的电压,���Iin和����Iout分别为定值电阻两端的电流。该公式表示,当定值电阻两端...
  • 分立半导体组件设计优化:从选型到布局的全面指南 分立半导体组件选型关键因素选择合适的分立半导体组件是确保电路性能与可靠性的第一步。应综合考虑以下参数:1. 电气参数匹配最大工作电压(VDS, VCEO):确保器件能承受电路中的峰值电压。额定电流(ID, IC):避免因过流...
  • 电阻应变片主要有金属应变片和半导体应变片两种 金属应变片电阻变化主要尤其结构尺寸变化所致,而半导体是利用半导体的物理效应即压阻效应工作的,金属应变片的优点1.结构简单频率特性好,2,价格低廉品种多样,3可在高(低)温、高速、高压、强烈振动、强磁场及核辐射...
  • 屏蔽特定数值功率电感:220与330的考量 在电子设计中,选择合适的功率电感对于电路性能至关重要。当涉及到屏蔽功率电感时,尤其需要考虑其标称值以确保最佳性能。根据您的需求,我们关注的是屏蔽功率电感中的两个具体数值:220和330(假设单位为μH微亨)。这...
  • 整流变压器直流电阻检测标准及其在工业应用中的实践意义 整流变压器直流电阻检测的行业标准与应用背景在冶金、电解、轨道交通、大型工业电源等高功率直流应用场景中,整流变压器承担着将电网交流电高效转换为所需直流电压的关键任务。其运行可靠性直接关系到生产线的安全与...
  • 电阻定义 电阻定义分类定义:导体对于电流的阻碍作用叫做该导体的电阻,它是导体本身的一种性质,通常用字母R表示,电阻的单位是欧姆,简称Ω。1、结构分类按照结构电阻可以分为固定电阻器、可变电阻器以及特种电阻器,他们具有...
  • 光颉Viking AL系列电感器:高稳定性与高密度布局的理想之选 深入解析光颉Viking AL系列电感器的技术亮点在高速数字电路与高密度PCB设计中,电感器不仅要具备出色的电气性能,还需在有限空间内实现高效布局。光颉Viking推出的AL系列电感器,专为高稳定性和高集成度场景打造,是现代电子...
  • 电阻的定义是什么? 电阻,用中学的物理定义说,就是电路中某元件阻碍电流流通的能力。不过,这个定义显然不是很严密。根据欧姆定律,我们知道电阻R与电压U和电流I的关系是: R=U/I 。这个式子告诉我们,测量电阻并不一定非要停...
  • 标准线性产品定义与应用 标准线性产品通常指的是在工业生产和制造过程中遵循特定规范和标准的一类线性产品。这类产品因其高度一致性和可预测性,在多个领域得到广泛应用。例如,在电子行业,标准线性产品可以是电阻、电容等元件;在建筑行业...
  • 防护式开关的定义和应用领域 防护式开关是一种在设计上具备额外保护机制的开关设备,旨在提高操作的安全性和可靠性。这种开关常用于需要防止意外触碰或环境因素干扰的应用场景中。例如,在工业自动化、家用电器、机械设备以及电子设备等领域,防...
  • PTTC聚鼎PG25E-L05气体放电管:小体积大能量的防护新选择 PTTC聚鼎PG25E-L05气体放电管深度评测作为一款紧凑型高性能气体放电管,PTTC聚鼎PG25E-L05凭借其小巧的外形与强大的过压抑制能力,成为当前电子设备小型化趋势下的理想选型。尤其适合空间受限的便携式设备与嵌入式系统中使用。...
  • 深入解析WAN3216F245L18的引脚定义与电路设计要点 WAN3216F245L18引脚功能详解正确理解WAN3216F245L18的引脚配置是实现稳定系统设计的前提。该芯片采用64引脚QFP封装,各引脚功能明确,涵盖电源、地线、输入输出端口及控制信号。关键引脚说明引脚编号功能描述电平类型1, 64VCC(电源...
  • 如何优化贴片微型元件在高速网络电路中的布局设计 优化贴片微型元件布局提升信号质量在高速网络电路设计中,贴片微型网口变压器与电阻的布局直接影响整体性能。合理的布线策略可显著降低电磁干扰(EMI)并提高信号完整性。1. 网口变压器的布局原则对称走线: 变压器两端...
  • 数显压力开关:现代工业自动化控制的重要组成部分 数显压力开关是一种现代化的压力控制设备,它结合了传统机械式压力开关的实用性与数字技术的精准性。以成瑞品牌的数显压力开关为例,这类产品通常具备高精度的压力测量功能,能够实时显示当前系统内的压力值,并在达...
  • 深入解析标准线性产品:定义、特征与实际应用 什么是标准线性产品?标准线性产品是指在设计和功能上遵循固定逻辑结构、可重复生产且具有明确输入输出关系的产品。这类产品通常用于工业制造、软件系统、金融服务等领域,其核心特点是高度可预测性和模块化。主要特...
  • SOD-123封装二极管在RS-232通信电路中的选型与布局优化指南 基于SOD-123封装二极管的RS-232电路设计实践在构建高性能、高可靠性的RS-232通信模块时,正确选择和布置SOD-123封装二极管是保障系统长期稳定运行的关键环节。以下从选型、布局到测试进行全面分析。1. 二极管选型关键参数选择S...
  • 分立组件中的晶体管与二极管数组协同应用解析 分立组件中晶体管与二极管数组的协同工作原理在现代电子系统设计中,分立组件如晶体管和二极管数组被广泛应用于信号处理、电源管理及逻辑控制等关键环节。其中,晶体管作为核心的开关或放大元件,而二极管数组则用于...