C语言
文章平均质量分 66
塔克Tark
嵌入式工程师 一个数码爱好者
展开
-
Keil MDK的一些推荐功能(编码格式、自动保存、代码提示、动态语法检查、多核编译)
一直在用Keil MDK开发,很多时候并没有仔细去研究它强大的功能,最近在做一些开源项目的同时也在想办法提高自己的工作效率,所谓时间就是金钱,看到世伟兄分享的这篇Keil MDK的笔记,正是我想要学习提升效率的,所谓前人种树,作为后人的我就来乘凉咯!原创 2023-04-04 14:07:24 · 5519 阅读 · 1 评论 -
C语言--回调函数
回调函数,光听名字就比普通函数要高大上一些,那到底什么是回调函数呢?恕我读得书少,没有在那本书上看到关于回调函数的定义。我在百度上搜了一下,发现众说纷纭,有很大一部分都是使用类似这么一个场景来说明:A君去B君店里买东西,恰好缺货,A君留下号码给B君,有货时通知A君。感觉这个让人更容易想到的是异步操作,而不是回调。另外还有两句英文让我印象深刻:1) If you call me, I will call you back;原创 2023-02-20 11:38:10 · 852 阅读 · 0 评论 -
C语言--static、const、volatile关键字
说它定义的是常量,但又有变量的属性,所以叫常变量。(但是我们仍然可以通过指针的方式来间接修改变量的值,也就是说,const 修饰变量使变量的值不能被修改这一属性并不是绝对的,它只是编译器层次上的保证。当存在直接对内存进行操作的动作,例如其他线程修改了内存中flag 的值,因为CPU是直接从寄存器中读取 flag 的值进行 while 循环的逻辑判断的,所以当另一个逻辑将 flag 改为0时,while 循环并不会停止,而是会继续执行其中的代码块,从而造成程序逻辑上的错误。这条语句都不会被执行。原创 2023-02-17 10:14:55 · 1696 阅读 · 0 评论 -
C语言--weak的作用
如果这个关键字用在函数定义上面,一般情况下和一般函数没有两样。被[WEAK]或__weak 声明的函数, 我们可以在自己的文件中重新定义一个同名函数,最终编译器编译的时候,会选择我们定义的函数,如果我们没有重新定义这个函数,那么编译器就会执行[WEAK]或__weak 声明的函数,并且编译器不会报错。weak 顾名思义是“弱”的意思,在汇编中, 在函数名称后面加[WEAK]来表示, 而在 C语言中,在函数名称前面加上__weak 修饰符来表示, 这样的函数我们称为“弱函数”。原创 2023-02-17 09:51:09 · 3723 阅读 · 0 评论 -
C语言--的转义字符和占位符
常用的转义字符在windows自带的超级终端中,如何清屏?通过发送0x0C(12)即可实现清屏在“输入字符串”内容中输入 \x0c\0 :字符串结束标志在上面的程序里找到while(*str != ‘\0’) , 你就会知道 \0 的功能了。他可以表示字符串的结束,你可以不用担心指针会溢出。转义字符说明\n换行(ascII码为10),一般和 \r 配合以代表回车。 \n 表示换行而没有让光标回行首,\r 实现了回行首\t横向跳格\b退格\r原创 2021-03-22 13:06:51 · 869 阅读 · 0 评论 -
C语言--Union类型的使用方法
使用C语言时,常常使用struct,对于union类型却几乎没有用过,只知道它是联合类型,各字段共享一块内存,实际应用中却不知道它的具体用途。struct为每个字段在不同的偏移处分配存储空间,而联合则将所有的字段重叠在内存中的相同偏移处。一般在Windows API的一些数据结构中才能看到这个union,其实并不复杂。本质上来说和结构体是一样的,但是从包装的角度来看有差异。1、union中可以定义多个成员,union的大小由最大的成员的大小决定。2、union成员共享同一块大小的内存,一次只能使用其原创 2022-04-26 08:34:43 · 1961 阅读 · 1 评论