![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 58
无锡的老张
这个作者很懒,什么都没留下…
展开
-
记录一个出现多次的小BUG:用串口读的数据,只能有一次赋值
遇到的一个小bug原创 2022-09-09 13:00:51 · 204 阅读 · 0 评论 -
C语言调用函数时参数传递实测(好久以前记录的)
正在上传…重新上传取消上面是函数原型。来看看它编译后的反汇编是怎样执行的。理解函数的调用过程。第一步:int i= 10在执行完i= 10后,可以查到i的地址是0x0028FAAC,然后查对应的内存地址...原创 2022-04-29 16:35:43 · 293 阅读 · 0 评论 -
C--《C和指针》第8章读书笔记之多维数组
我认为这本书将多维数组的概念讲的非常透彻,而且浅显易懂,经典书籍果然名不虚传~~1、多维数组及指向数组的指针的引出 一维数组名的值是一个指针常量,它的类型是“指向元素类型的指针”,它指向数组的第一个元素。多维数组的第1维的元素实际上是另一个数组。如: int ppp[3][10]; 创建ppp,它可以看做是一个一维数组,包含3个元素,只是每个元素恰好是包含10个整形元素的数组。ppp这...原创 2018-06-15 16:49:10 · 235 阅读 · 0 评论 -
C--《C和指针》第8章读书笔记之效率问题
作者在第8章有几个小例子来测试指针的效率问题。他当年用的处理器是摩托罗拉的M6800,编译器不清楚。下面是他的例子。原谅我的电子版的太花了。。上面这个例子的反汇编行数比较多。运用了指针及一些技巧后,反汇编代码迅速降低,运行效率看起来变高了。但是,同样的代码我在VS2010上面试了下。上面第一个例子对应的代码如下:上面第2个例子对应的反汇编代码如下:我们看到,第二个运用指针的例子,在VS2010上面...原创 2018-06-07 13:28:25 · 289 阅读 · 0 评论 -
C--《C和指针》第七章读书笔记
1、函数原型(这段太文绉绉了,看看即可) 原型总结了函数定义的起始部分的声明,向编译器提供有关该函数应该如何调用的完整信息。使用原型最方便最安全的方法是把原型置于一个单独的文件,当其它源文件需要这个函数的原型时,就用#include指令包含该文件。这个技巧避免了错误键入函数原型的可能性,它同时简化了程序的维护任务,因为这样只需要该原型的一份物理拷贝。如果原型需要修改,你只需要修改它的一处拷...原创 2018-06-07 10:39:43 · 244 阅读 · 0 评论 -
关于MODBUS RTU的T3.5 、T1.5的时序问题
先看一下MODBUS协议里面关于这两个重要的时序是怎么写的: 在RTU模式,报文由时长至少3.5个字符时间的空间间隔区分。如下图: 整个报文帧必须以连续的字符流发送,如果两个字符之间的空闲大于1.5个字符时间,则报文帧认为不完整,应该被接收点丢弃。 注意:RTU接收驱动程序的实现,由于T1.5和T3.5的定时,隐含着大量对中断的管理。在高通信速率下,这导致CPU负担家中,...原创 2018-06-05 15:51:37 · 12210 阅读 · 3 评论 -
C-关键字之volatile
在上个文章里提到了volatile关键字,这里进行一下总结。里面有网上查到的,也有我使用STM32单片机时关于volatile的心得。 Volatile总是和优化有关,编译器有一种技术叫数据流分析,分析程序中变量在哪里赋值,在哪里使用。但这时有些优化并不为程序需要,这时可以用volatile禁止做这些优化。Volatile的字面含义是易变的。它有以下作用:1、不会在两个操作之间把volatile变...原创 2018-05-28 09:06:54 · 351 阅读 · 0 评论 -
C——《C和指针》第六章读书笔记
好久没看关于C语言的资料。之前看的比较多,一看到C的东西就想吐。然后最近一年都没看C的知识,感觉有些东西慢慢又遗忘或模糊了。这时候掏出《C和指针》好好的回味一番,感觉味道真TM好~~1、边界对齐问题。 在第六章的开头提到了“边界对齐”问题。在绝大多数情况下,它确实很少影响C程序员。但是对于某些不能自动对齐的单片机,如STM32F030(我以前遇到过),就需要注意边界对齐问题,在定义结...原创 2018-05-17 08:51:43 · 792 阅读 · 0 评论 -
随笔-2018.4.3
最近公司事情比较多,而且家里事情也多。都没怎么学习。。我最近发现学习编程和烧菜里面很多道理是一样的。学做一道菜的时候,刚开始就照着菜谱,按部就班,一步一步照着做;然后这道菜做完一次后,就以为自己会做了;等到几个礼拜、或几个月后,又要来做这菜的时候,就手忙脚乱,要不要焯水、要不要放糖、煮多长时间、大火还是小火,基本忘的了;然后又翻出菜谱来对照一下,如此这般好几次,才能把这道菜的味道烧好。学习编程也一...原创 2018-04-03 09:48:57 · 235 阅读 · 0 评论 -
STM32--今天下午遇到了两个BUG。记录一下(栈溢出和串口调试)
1、栈溢出调试时发现有个调节PWM占空比的参数会莫名其妙的乱跳。观察代码,求这个系数的函数只在系统初始化的时候求过一次,之后就再也没有调用过。单步执行代码,发现初始化时第一次运行时求出的系数是对的,但是全速运行后,这里面的系数就变了。既然我没有调用函数来修改这个值,那肯定是被别的区域的值覆盖了。打开map文件,看一下Trans_1_BaseStructre这个结构体周围原创 2017-04-27 12:37:15 · 5310 阅读 · 5 评论 -
C-关键字之const
我只要一听到被面试者说:"const意味着常数"(不是常数,可以是变量,只是你不能修改它),我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着"只读"就可转载 2017-02-21 20:55:47 · 313 阅读 · 0 评论 -
C-《C和指针》第五章读书笔记
最近组织了网上的朋友们一起在读《C和指针》这本书。如果想要加入的可以加入我们:213867076,群里主要是玩STM32单片机和嵌入式方面的,进群验证就写C和指针把。第五章有好多的干货,把一些我之前不太熟悉或者我觉的有必要记住的记录下来。1、数据截短。在第70页中讲到由于数据类型的不同,会导致数据截短。下面是例子:char x;int a ;int y = 1000原创 2017-03-02 18:58:04 · 388 阅读 · 0 评论 -
C-结构体对齐
技术群的筒子们有时候会提到结构体对齐,说实话这个问题还不是几句话能讲清楚的。这个问题网上一搜一大把,已经有无数的前辈总结过。看了很多网上的资料,根据我个人的一些理解,再总结一下,配了些图片,希望大家能看懂。 首先是结构体对齐规则:1、对于n个字节的元素,它的首地址要能被n整除 eg:int—4个字节的元素,它为结构体的第一个元素时,起始地址应能被4整除原创 2016-09-23 19:28:58 · 2359 阅读 · 0 评论