微信网站域名,免费正能量下载软件,衡水网站建,重庆正云环境网页制作最近一个项目里面#xff0c;在KEIL中用C语言在单片机里面定义了一个状态机全局变量#xff0c;这个变量随时会改变#xff0c;用于切换触摸屏的界面#xff0c;可是程序运行中出现了一个问题#xff0c;这个状态机号总是出现了被莫名奇妙改变的问题#xff0c;导致触屏不…最近一个项目里面在KEIL中用C语言在单片机里面定义了一个状态机全局变量这个变量随时会改变用于切换触摸屏的界面可是程序运行中出现了一个问题这个状态机号总是出现了被莫名奇妙改变的问题导致触屏不能正常跳转到预设的界面经过检查分析可能有两个原因•)全局变量与局部变量同名重复定义。有可能是你定义了一个与全局变量一样名字的局部变量并在子程序里面修改了变量值。•)缺少volatile修饰符。C语言中volatile修饰符不常用它的作用是明确该变量是变化的防止编译器对该变量进行优化让处理器在运行时每次都从内存中读取数据而不是用寄存器中的备份数据。此修饰命令建议仅对全局有重要作用的关键变量使用。用法定义时volatile unsigned char a;//定义了一个字符变量a经检查是第2个原因在程序中定义变量时添加volatile修饰符后问题解决。关注我分享科技开发、高效思维、理财等的点点滴滴。微信公众号yonkotech