嵌入式软件C语言可靠性设计问题汇总情况

嵌入式软件C语言可靠性设计问题汇总情况

ID:47930396

大小:89.76 KB

页数:36页

时间:2019-11-06

嵌入式软件C语言可靠性设计问题汇总情况_第1页
嵌入式软件C语言可靠性设计问题汇总情况_第2页
嵌入式软件C语言可靠性设计问题汇总情况_第3页
嵌入式软件C语言可靠性设计问题汇总情况_第4页
嵌入式软件C语言可靠性设计问题汇总情况_第5页
资源描述:

《嵌入式软件C语言可靠性设计问题汇总情况》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文案嵌入式软件可靠性设计问题集锦目录1、程序员理解错误21.1、英文标点被误写成中文标点;21.2、+=与=+、-=与=-容易混21.3、程序员输入错误21.4、数组问题21.5、switch…case语句中的 break关键字31.5、变量赋值31.6、指针的加减运算41.7、增量运算符++和减量运算符--52、编译器语义检查62.1、数据类型问题62.2、误加标点符号62.3、编译器忽略掉多余的空格符和换行符62.4、数组越界。72.5、数组声明具有外部链接时大小应显式声明7大全标准文案2.6、编译器检查不出数组越界82.7、编译器与vol

2、atile限定符92.8、定义为volatile的变量的作用过程112.9、局部变量必须显式初始化113、不合理的优先级123.1、常规使用可能引起误会的运算符134、隐式转换和强制转换134.1、有符号和无符号char和short类型自动转换134.2、混合数据类型运算中会转换成较高级别数据类型144.3、赋值语句计算结果被转换成被赋予值的变量类型154.4、作为函数参数被传递时的数据类型转换154.5、C语言强制类型转换规则154.6、通用编程建议155、判错155.1、具有形参的函数,需判断传递来的实参是否合法。165.2、仔细检查函数的返回

3、值175.3、防止指针越界175.4、防止数组越界17大全标准文案5.5、数学运算185.6、其它可能出现运行时错误的地方206、容错206.1、关键数据多区备份,取数据采用“表决法”206.2、非易失性存储器的数据存储216.3、软件锁216.4、通信数据的检错216.5、开关量输入的检测、确认226.6、开关量输出226.7、初始化信息的保存与恢复226.8、陷阱226.9、while循环226.10、系统自检22大全标准文案1、程序员理解错误大全标准文案1.1、英文标点被误写成中文标点;比较运算符==误写成赋值运算符=,代码if(x=5){…

4、}本意是比较变量x是否等于常量5,但是误将’==’写成了’=’,if语句恒为真。如果在逻辑判断表达式中出现赋值运算符,现在的大多数编译器会给出警告信息。并非所有程序员都会注意到这类警告,因此有经验的程序员使用下面的代码来避免此类错误:       if(5==x){…}将常量放在变量x的左边,即使程序员误将’==’写成了’=’,编译器会产生一个任谁也不能无视的语法错误信息:不可给常量赋值! 1.2、+=与=+、-=与=-容易混复合运算符会给程序带来隐含Bug,如下所示代码:       tmp=+1;该代码本意是想表达tmp=tmp+1,但是将复合

5、赋值运算符+=误写成=+:将正整数常量1赋值给变量tmp。编译器会欣然接受这类代码,连警告都不会产生。-=与=-同理。类似的逻辑与&&、位与&、逻辑或

6、

7、、位或

8、、逻辑非!、位取反~等。字母l和数字1、字母o和数字0也易混淆,这种情况可借助编译器来纠正。1.3、程序员输入错误阿拉伯数值输入,宏变量宏定义方式实现。防止多次录入数字出现手误。 大全标准文案1.4、数组问题C语言数组下标从0开始。定义inta[30],是从a[0]~a[29]。1.5、switch…case语句中的 break关键字 switch…case语句可以很方便的实现多分支结构。

9、漏加break,引起顺序执行多个case语句;break关键字用于跳出最近的那层循环语句或者switch语句。network code()  {         switch(line) {                case  THING1:                       doit1();                break;                case  THING2:                       if(x==STUFF) {                              do_f

10、irst_stuff();                              if(y==OTHER_STUFF)                                     break;                              do_later_stuff();                       } /*代码的意图是跳转到这里… …*/  大全标准文案                     initialize_modes_pointer();                break;     

11、           default:                       processing();      

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。