C语言
文章平均质量分 69
嵌入式历练者
一个在嵌入式领域钻研的学习者,纸上得来终觉浅,绝知此事要躬行。目前从事BMS电池管理系统软件开发
展开
-
C 语言的断言函数应用
从上面的示例中不难发现,对标准的 assert 宏来说,自定义的 ASSERT 宏将具有更大的灵活性,可以根据自己的需要打印输出不同的信息,同时也可以对不同类型的错误或者警告信息使用不同的断言,这也是在工程代码中经常使用的做法。从表面看来,上面的解决方案应该堪称完美。上面的解决方案尽管通过条件编译“#ifdef DEBUG”能产生很好的结果,也完全符合我们的程序设计要求,但是仔细观察会发现,这样的测试检查代码显得并不那么友好,当一个函数里这种条件编译语句很多时,代码会显得有些浮肿,甚至有些糟糕。转载 2023-08-18 11:06:26 · 251 阅读 · 0 评论 -
(sizeof(a) / sizeof(*(a)))解析
/* Private define ------------------------------------------------------------*/#define RxBufferSize (countof(RxBuffer) - 1)/* Private macro -------------------------------------------------------------*/#define countof(a) (sizeof(a) / sizeof(*(a)))原创 2022-03-31 14:25:39 · 2117 阅读 · 2 评论 -
void *memset(void *str, int c, size_t n)
事情是这样的:我定义了一个结构体数组 ,这个结构体里有数组元素typedef struct { uint8_t Car_Type[5]; //车辆类型 uint8_t Car_ID[5]; //车辆编号ID uint8_t Year; uint8_t Month; uint8_t Day; uint8_t Hour; uint8_t Min; uint8_t Sec; _Bool notEmpty;}Car_Structu原创 2022-03-24 22:56:00 · 1316 阅读 · 0 评论 -
《玩透嵌入式C的角角落落》当你需要循环体至少执行一次时,选择do
当你需要循环体至少执行一次时,选择do-----《C与指针》1.概念平时我们常用while语句来表达我们的”先判断后循环“的思想,此外while语句还有一位兄弟叫做do语句,或者叫do-while,他显著特点是“先循环后判断”,至少会执行一次循环体。do的语法为:do statement //为循环体while(expresssion); //expresssion测试表达式,其值为1或0原创 2022-01-24 18:28:33 · 5591 阅读 · 4 评论 -
《玩透嵌入式C的角角落落》深入分析sprintf和printf函数
在单片机调试中,我们常用printf打印有用信息来调试我们的程序,但是却不能直接使用,究其原因,在于标准C语言printf函数的底层实现的机制,已经规定输出流输出到PC端的显示器。这也是单片机调试时,为什么要对printf函数进行重定向的原因,所谓重定向,这里涉及流的概念,即“重新定义信息流的流动方向‘’——我从哪里来,又要到哪里去”。即要实现在串口或者LCD上显示,必须要重定向原创 2021-12-25 23:02:02 · 4312 阅读 · 4 评论 -
一段开启学习C++的历程,一段重温C++并深入探讨的故事
一段开启学习C++的历程,一段重温C++并深入探讨的故事 数组下标是从0开始的,因为这个缘故,很多人犯了"差一个"错误。而为什么数组下标是从0开始的?源自于C编译器设计者的习惯使然!因为早期的C语言经常跟C编译器设计者打交道,他们脑海中的“偏移量思想”已经根深蒂固。原创 2021-12-23 19:54:25 · 636 阅读 · 0 评论 -
只看不敲,神也学不好C---------嵌入式经典书籍经验分享
目录1.C语言经典2.单片机系列3.Python方面4.嵌入式LWip协议5.Android6.C++经典书籍7.Linux开发8.版本控制Git9.其他的书籍该文章为原创,转载请注明出处和作者:1.C语言经典第一个我是学嵌入式的,C语言必须拿下,这里只推荐进阶书籍,初学看视频或者随便找本教材(能讲清楚C语法就行,这个时候初学者不要在选书上浪费时间),接下来就敲 敲 敲!犯的错误越多越好,只看不敲,神也学不好C,这句话我说的。...原创 2021-11-23 20:51:16 · 16146 阅读 · 24 评论 -
【写给大家看的C语言】优先级的一些有趣特性
sizeof操作符的特性1.sizeof在C语言中实际上是一个操作符,但总有人认为它是个函数。2.什么时候必须加上括号?当sizeof的操作数是个类型名,两边必须加上括号,例如sizeof(int)这或许就是被人常常误认为它是个函数的原因。...原创 2021-11-22 19:29:45 · 536 阅读 · 1 评论 -
【C语言应该这样学】for语句与while语句今生相遇
1.for语句的特例 需要强调的是,如果在for语句中没有循环条件,则认为表达式始终为真。for语句常用于“遍历”,请看一下经典for语句特例。例1.1for(;;){ 循环体语句;}或者来个更变态的for(;;);例1.1 for(;;)相当于while(1)无限循环。例1.2for(;i<100;i++);变形1#include"stdio.h"int main() { int i = 1; for (; i < 100 ;) ...原创 2021-11-16 19:25:58 · 1123 阅读 · 9 评论 -
深入理解C语言
文章出于这里,转载于陈皓大神,个人Blog现在在酷壳(CoolShell.cn)酷 壳 – CoolShell,每天我都会花上一个小时来阅读各种网站平台,来拓宽自己的阅读面,酷壳是我觉得很不错且为数不多的技术分享网站。Dennis Ritchie 过世了,他发明了C语言,一个影响深远并彻底改变世界的计算机语言。一门经历40多年的到今天还长盛不衰的语言,今天很多语言都受到C的影响,C++,Java,C#,Perl, PHP, Javascript, 等等。但是,你...转载 2021-10-23 10:32:16 · 196 阅读 · 0 评论 -
汇编语言的那些事----------第一个程序(二)
先来看下面一段节选的汇编语言源程序:assume cs:codesgcodesg segment mov ax,0123H mov bx,0456H add ax,bx add ax,ax mov ax,4c00H int 21Hcodesg endsend在汇编语言源程序,包括...原创 2021-10-09 11:57:16 · 348 阅读 · 9 评论 -
汇编语言的那些事------学习闲谈(一)
汇编的诞生:操作:寄存器BX的内容送到AX中机器指令:1000 1001 1101 1000汇编语言:mov ax,bx在写一条汇编指令或写一个寄存器名称时不区分大小写,大小写表示的含义相同,ax和AX含义相同。在进行数据传送和运算时,要注意指令的两个操作对象的位数应当一致,对于mov ax,bx这条指令,ax如果是8位寄存器,而bx是16位寄存器,则这条指令是错误的。CPU读写一个内存单元时,必须给出内存单元的地址,就像给人写信寄东西总要知道别人家的地址吧! 在8086...原创 2021-10-08 17:08:43 · 356 阅读 · 3 评论