[编程]成都控制器开发:千万注意,不要轻易把变量定义和赋值搞在一起

最近开发编写一个测试设备的程序(C程序),在定义一个全局变量的时候,之前我喜欢在定义的时候直接赋值,如这样:

unsigned char a=0;//这里直接给变量a定义并赋值

void main_function()

{

//在这里使用a

...

}

不过这样做的时候却有时可能要出问题,比如可能导致在后期使用的时候a可能不等于0。最近就被这个故障烦了好久,起初检查好几遍了都无头绪,最后用串口把变量a传出显示才发现,a的数值变了,

a咋会变呢?你打si也想不到它会变心,

最后改为如下面的定义和赋值单独进行,问题才得以解决,

unsigned char a;//定义a

void main_function()

{

a=0;//给a赋值

...

}

其实之前按照前一种方式做的也都没有问题,不过最近又修改了不少代码才出了故障。有时候看似省了一行代码,其实导致了不可预见的不稳定的bug,还是应当按照规范来,毕竟,找出这个问题在哪里实在太不容易了,要花很多时间和尝试。

更多干货,尽在微信公众号:yonkotech

原文地址:https://www.cnblogs.com/yonkotech/p/12348534.html

时间: 2024-08-30 06:39:32

[编程]成都控制器开发:千万注意,不要轻易把变量定义和赋值搞在一起的相关文章

1.2编程基础之变量定义、赋值及转换

Portal:http://noi.openjudge.cn/ch0102/ 一套水题,然而他们还是题 01-03是测基本数据类型存储空间大小 01 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { int a; short b; cout<<sizeof(a)<<' '<<sizeof(b); return

OR1200处理器的可编程中断控制器PIC分析

以下内容摘自<步步惊芯--软核处理器内部设计分析>一书 16.3可编程中断控制器PIC分析 16.3.1 PIC介绍 可编程中断控制器Programmable Interrupt Controller(PIC)用来响应各种中断事件,如:键盘事件.串口数据到达等,PIC收集所有的中断,并通知CPU中断到达,后者转入到中断处理例程进行处理.OR1200最多支持32个中断.其功能实现主要依靠两个特殊寄存器:中断屏蔽寄存器PICMR.中断状态寄存器PICSR.通过PICMR可以设置是否屏蔽某些中断,通

成都APP开发公司 如何选择APP开发公司

app软件现如今已经是当代智能手机用户不可缺少的一部分了,而app软件的开发是很多企业都要选择的一项重要业务,因为app带来的收益现在已经是完全可以和企业线下的推广等同.在现今app这个竞争激烈的 市场,要想要通过app来活获得客观的收益是一个企业必须考虑的问题. [ 成都APP开发|成都APP开发公司|成都APP外包 - 宏星科技,企业服务首选[官网:http://www.cdhongxing.com/]是国内专业的Android.ios等系统APP开发公司,擅长各种手机应用软件的设计与研发,

谈谈编程器软件开发与设计

*************************************************************************************************************************** 作者:EasyWave                                                   时间:2014.05.24 类别:协议标准-编程器简介                                  声明:

程序与软件、编程与软件开发的区别

今天突然想到两个有意思的问题:程序与软件有区别吗? 编程与软件开发有何区别? 这两个问题也是我在大学时期一直思考的两个问题.作者在学校期间阅读了许多的专业书籍,比如<Java语言程序设计>.<C语言程序设计>.<软件工程>.<设计模式:可复用面向对象软件的基础 >以及许多<21天精通XXX程序设计>系列书籍,也写了许多的小程序,但有一些问题作者始终没有完全弄清楚.比如: 1.真的可以在21天之内精通某一门程序设计语言吗? 2.什么是面向对象? 3

关于编程编程规范以及开发目录的规范性

如何规范自己的编程以及软件开发目录(一) python 为什么要做这些? 可想而知,随着你的编码慢慢的变多,内容也会变得越来越多:所以,不用想的,规范化自己的编程以及软件开发目录这十分的重要:那么如何做这些东西了?我们作为初学者,目的就是为了遵循代码规范,这是最基本的,而且以后工作了,每个团队的规范还不一样,尽可能的与自己的团队保持一致,目前初学者按照官方要求即可.只要在以后多观察代码风格,多看几次就可以学会了. python中如何规范自己的编程? 关于注释 注释不止为了自己看清楚自己的代码,而

测开6 - Python(网络编程、接口开发)

python课的开头我已经反复听了好几遍了,始终没有接触到网络编程和接口开发这部分.再加上上周的课因为公司出游耽误了,内心其实还是很忐忑的,很担心跟不上进度或者跟的吃力,之后就没有什么动力和正向反馈支撑我继续学习了.一整天的课听下来觉得好像也没有想象中那么难,主要还是零散的知识点,容易出现眼睛会了脑子不会的情况辣!??????  1?? 网络编程 主要是发送请求??拿到结果??对结果进行处理.用到的是 request 模块,以下通过请求的不同类型来分别总结. a. get 请求 1 url =

PL/SQL——编程——变量定义

1.变量标量类型(scalar)复合类型(composite)参照类型(reference)lob(large object) --定义一个变长字符串v_ename VARCHAR2(10)--定义一个小数,范围-9999.99~9999.99v_sal NUMBER(6,2)--定义一个小数,并给初始值5.4,:=是plsql的赋值符v_sal2 NUMBER(6,2):=5.4--定义一个日期类型v_hiredate date--定义一个布尔量,不能为空,初始值为falsev_valid B

iOS开发Swift篇(01) 变量&amp;常量&amp;元组

iOS开发Swift篇(01) 变量&常量&元组 说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年部分iOS开发Swift篇专题的博文也不再做任何的校正和更新,特此说明. 2)该博文对应代码可以在https://github.com/HanGangAndHanMeimei/Code获得. 一.变量和常量 01 变量和常量的定义 在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不