
C语言易错知识
发布日期:2021-05-04 09:36:35
浏览次数:19
分类:技术文章
本文共 375 字,大约阅读时间需要 1 分钟。
C语言易错知识
!和 ~ 不一样
! 是逻辑非符号,~ 是位取反符号。
<<和>>的优先级低于+、-
比如要实现c=x*2+1,没有加括号会出错。
移位要防止溢出
其实用移位代替乘除法是个不错的方法,笔者很喜欢拿到一段代码后用移位代替乘除法来进行优化。不过有时候却会出现问题,比如溢出问题。当很明显可能溢出的话我们是会注意的。但是有时候这个问题是不明显的,比如当移位出现在数组索引或函数参数时。我们可以用左移运算来代替乘法进行优化。
无符号数和有符号数混合运算都会被强制转换为无符号数运算
当一个有符号数和一个无符号数进行算术运算时,系统会自动将有符号数强制转换为无符号数再进行运算(即使你使用有符号数强制类型转换)
局部变量要初始化
局部变量没有初始化的话,因为单片机每次为他分配的是同一个内存区域,当你在函数中是这么使用局部变量时,就可能出问题:
发表评论
最新留言
不错!
[***.144.177.141]2025年03月11日 03时58分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
分布式理论基础知识点入门
2019-03-03
SpringCloud之消息总线(Spring Cloud Bus)刷新配置
2019-03-03
多线程之创建线程的两种方式
2019-03-03
fragment中recyclerview的重新加载问题
2019-03-03
window程序设计(1):第一个windows程序
2019-03-03
windows程序设计(4):文本输出
2019-03-03
JZOJ7月29日提高组反思
2019-03-03
21.2.3总结
2019-03-03
线性代数和数学期望杂题
2019-03-03
21.2.4总结
2019-03-03
【SSL_P2876】2017年东莞市信息学特长生测试题 工程
2019-03-03
【洛谷_P1433】吃奶酪
2019-03-03
【SSL_2020.10.28】区间和的和
2019-03-03
【学习笔记】NumPy数据存取与函数
2019-03-03
ssm项目学习8-bootstrap遇到的错误整理篇
2019-03-03
vector构建邻接表和原始邻接表
2019-03-03
UNITTEST测试框架的使用
2019-03-03
区块链公链如何才能快起来
2019-03-03