★嵌入式高级C语言(非常重要)
嵌入式入门到精通第七门课,C语言是嵌入式开发做基础和核心的知识,本专栏会从头开始把嵌入式C语言实践及面试技巧都教给你!
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
CodeAllen嵌入式
CSDN博客专家,曾中科院无人机软件研发,现TOP通信外企高级软件工程师,专注通信电子及嵌入式软件方向职业规划,全网技术矩阵粉丝10w+,欢迎交流一起成长!
展开
-
高级C语言目录
目前高级C语言专栏文章总数为69篇,后序会逐渐更新并整理目录,感谢关注目录C语言学习篇资料分享篇杂谈C语言C语言实例错误解决篇C语言学习篇C语言学习第1篇---数据类型概念剖析资料分享篇C语言深度剖析 陈正冲 资料分享杂谈C语言杂谈C语言 1 递归函数剖析C语言实例C语言实例 1 学生成绩管理系统错误解决篇void value not ignored as it ought to be...原创 2021-05-22 18:52:58 · 38110 阅读 · 0 评论 -
Vim快捷键及使用技巧
● 替换模式:在普通模式下通过光标选中一个字符,然后按r键,再输入一个字符,你会发现你输入的字符就替换掉了原来那个被选中的字符。● 命令行模式:普通模式下输入冒号(:)后会进入该模式,在该模式下输入命令,如输入:set number或:set nu可以显示行号。● 插入模式:按i/o/a键进入该模式,进行文本编辑操作,不同之处在于插入字符的位置在光标之前还是之后。● 普通模式:打开文件时的默认模式,在其他模式下按下ESC键都可返回到该模式。● k:在普通模式下,敲击k键,光标向上移动一个字符。原创 2023-08-30 23:04:18 · 845 阅读 · 0 评论 -
【嵌入式面试题】C语言基本构成元素总结
之前有同学让我帮忙总结下嵌入式C语言需要学习的知识点,下边是我利用业余时间总结的思维导图,仅供参考。原创 2023-01-08 22:47:47 · 590 阅读 · 0 评论 -
Windows下的C/C++语言编译器
Windows 下首先推荐大家使用微软开发的 Visual Studio(简称 VS),它是 Windows 下的标准 IDE,实际开发中大家也都在使用。但VC 6.0是1998年的产品,很古老了,在 Win7、Win8、Win10 下会有各种各样的兼容性问题,甚至根本不能运行,所以不推荐使用。VC 6.0 早就该扔进垃圾桶了,可是依然有很多大学把它作为教学工具,并且选用的教材也以 VC 6.0 为基础来讲解C语言和 C++,可见教学体制的极端落后,课程体系的更新远远跟不上技术的进步。转载 2022-12-08 16:17:53 · 2058 阅读 · 0 评论 -
Windows 7 64位系统安装汇编程序 debug.exe
下载 DOSbox 0.74(可上http://www.dosbox.com/download.php?main=1 下载),并双击安装下载debug.exe文件,并放在除某个磁盘的根目录,我是放在了E盘在该DOSbox窗口中依次输入一下操作:mount c d:\ 回车c: 回车debug 回车...原创 2019-07-16 23:34:15 · 10742 阅读 · 0 评论 -
8086汇编学习第3篇---寄存器(内存访问)
学习交流加(可免费帮忙下载CSDN资源):个人微信:coderAllen学习交流资源分享①群:736386324目录3.1 内存中字的存储3.2 DS和[address]3.3 字的传送3.4 mov、add、sub指令3.5 数据段3.6 栈3.7 CPU提供的栈机制3.8 栈顶超界的问题3.9 push、pop指令3.10 栈段...原创 2019-08-05 21:52:23 · 9973 阅读 · 0 评论 -
汇编学习软件推荐 - 汇编金手指
汇编的学习只要理解底层操作即可,在调试期间很有用,开发还是使用高级语言,所以很多指令不用背,推荐一个查询的软件这款软件可以直接查询需要的指令,有详细的介绍和使用方法编写汇编软件:debug软件见之前的文章:Windows 7 64位系统安装汇编程序 debug.exe下载地址:链接:https://pan.baidu.com/s/1fzwKNzvMsOF_zCpLbl0JBw提取码:r0...原创 2020-04-10 02:02:29 · 20025 阅读 · 2 评论 -
【专栏】8086汇编语言系列教程
学习交流加(可免费帮忙下载CSDN资源):个人微信:coderAllen学习交流资源分享①群:736386324更多更新文章请关注 公众号:【Allen5G】\color{#FF3030}{公众号:【Allen5G】}公众号:【Allen5G】 ,专注逻辑思维提升,程序员职业进阶8086汇编学习第1篇—基础知识8086汇编学习第2篇—寄存器(CPU工作原理)8086汇编学习第3篇...原创 2019-08-10 12:24:35 · 10427 阅读 · 0 评论 -
汇编语言入门教程
学习编程其实就是学高级语言,即那些为人类设计的计算机语言。但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。汇编语言不容易学习,就连简明扼要的介绍都很难找到。下面我尝试写一篇最好懂的汇编语言教程,解释 CPU 如何执行代码。一、汇编语言是什么?我转载 2020-12-13 21:38:23 · 1105 阅读 · 0 评论 -
%c对应类型为char, %s对应类型为char *
%c对应类型为char, %s对应类型为char *, 即字符串.用作输入时, 二者参数都要传char*型. %c输入函数只会对一个字节空间赋值. 而%s会一直赋值,直到输入中遇到空白字符为止.用作输出时, %c传char类型,输出一个字符. %s传char*类型参数, 输出到\0为止....原创 2021-08-22 15:35:49 · 43443 阅读 · 0 评论 -
成功解决:declared ‘static‘ but never defined
程序编译的时候会报错:warning: 'delay' defined but not never defined【问题原因】声明为static的函数不能被其他文件所使用,如果其他文件include uart.h。那么就会报上面的错误。【解决办法】解决的办法很简单,将头文件中的声明转移到.c文件中就可以了,即将函数delay的声明从uart.h移动到uart.c文件的开始就可以了。...原创 2021-08-22 15:33:24 · 44613 阅读 · 0 评论 -
【杂谈】嵌入式软件数据结构的特点
这两个在结构体虽然常用,但有时候很容易让人用混淆了,程序编译不通过。1、一般情况下使用“.”,只需要声明一个结构体。这个一般用在结构体变量的使用。格式是,结构体类型名+结构体名。然后用结构体名加“.”加域名就可以引用域 了,因为自动分配了结构体的内存。2、用“->”,则要声明一个结构体的指针,还需要手动开辟一个该结构体的内存空间,然后把返回的指针给声明的结构体指针,才能用“->”正确引用。这个用在结构体指针变量。如果内存中只分配了指针的内存,没有分配结构体的内存,原创 2021-08-22 15:31:58 · 39227 阅读 · 0 评论 -
C语言中,再对文件的操作模式中,a和a+、w和w+、r和r+有什么区别?
r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 a以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到...原创 2021-08-22 15:27:27 · 50225 阅读 · 0 评论 -
错误“a label can only be part of a statement and a declaration is not a statement”解决方法
本文转自知乎:http://www.zhihu.com/question/20187195 Milo Yip大神的回答 #include <stdio.h> int main() { for (float y = 1.5f; y > -1.5f; y -= 0.1f) { for (float x = -1.5f; x < 1.5f; x += 0.05f) { float a = x * x + y * y - .转载 2021-07-27 00:12:37 · 38074 阅读 · 0 评论 -
数组中存放的四个十六进制数合并成一个十六进制数,并转换成十进制?
工作中遇到的一个使用方法利用的就是计算机存储的特性,需要注意大小端char sDec[4] = {0x05,0xc5,0xb3,0xea};低字节序的情况下. 并且 int 占用 32bit. char sDec[4] = {0x05,0xc5,0xb3,0xea};int val = 0;char *pBuf = (char*)&val;pBuf[0] = ...原创 2018-02-13 11:38:00 · 40888 阅读 · 4 评论 -
[Warning] incompatible implicit declaration of built-in function ‘memset‘
[Warning] incompatible implicit declaration of built-in function ‘memset’原因是memset第一个参数是void * 类型,我用的是char类型,存在隐式声明第一想法是强制类型转换,memset((void*)xx, 0, sizeof(xx));还是不行,依然有warning好吧,原来是缺了memset头文件**#include <string.h>**这个缺少头文件不会报错,但是有warning原则上编译的原创 2021-03-29 20:01:25 · 39084 阅读 · 0 评论 -
C语言32个关键字
C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类1 数据类型关键字(12个):(1) char :声明字符型变量或函数(2) double :声明双精度变量或函数(3) enum :声明枚举类型(4) float:声明浮点型变量或函数(5) int:声明整型变量或函数(6) long :声明长整型变量或函数(7) short :声明短整型变量或函数(8) signed:声明有符号类型变量或函数(9) struct:声明结.原创 2020-11-16 20:28:32 · 37273 阅读 · 0 评论 -
#include<>和#include“ “
一般来说#include <> 的查找位置是标准库头文件所在目录#include “” 的查找位置是当前源文件所在目录补充:""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。若 #include “” 查找成功,则遮蔽 #include <> 所能找到的同名文件;否则再按照 #include <> 的方式查找文件。另外标准库头文件都放在 #include <> 所查找的位原创 2020-11-06 22:53:07 · 38664 阅读 · 0 评论 -
C语言复杂指针阅读方法 - 右左法则
VMware安装macOS 10.14完整教程(详细图文版)作者 Allen 转载请注明以下信息公众号「Allen有话说」(微信号:Allen5G)原文链接:https://allen5g.blog.csdn.net/article/details/104325657工具准备1.VMware Workstation Pro 15.0.0 Build 10134415官网下载地址:...原创 2020-09-01 00:08:40 · 72874 阅读 · 2 评论 -
The “right-left“ rule
The “right-left” rule is a completely regular rule for deciphering Cdeclarations. It can also be useful in creating them.“左右”规则是解密C的完全规则声明。在创建它们时也很有用.First, symbols. Readas “pointer to” - always on the left side[] as “array of” - always on t翻译 2020-09-01 00:04:36 · 37097 阅读 · 0 评论 -
C语言中<<、>>、&、|的实际用途
作为一个开发人员,在看别人项目或者看第三方库的源代码时,可能经常会看到譬如a>>4&0x0f这样的写法,对于一些初入行的童鞋来说可能就不是太明白这是什么意思。下面我们就来讲解这几个运算符的实际用途。一、运算符的含义运算符 含义 描述 << 左移 用来将一个数的各二进制位全部左移N位,高位舍弃,低位补0。 >> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0。 &.转载 2020-08-07 22:07:56 · 46946 阅读 · 2 评论 -
初学者如何入门C语言
原文链接:公众号:Allen有话说之前发了一篇初学者首先应该的学的编程语言,我的建议是C语言,然后有个朋友就私信我说C语言太难学了,学会了也没什么用等等。一看就是没看完就开始刚我了,我是建议先学,后边肯定还得继续学习,有分析称薪资最高的程序员群体掌握的编程语言为四种。也就是说学习C语言只是为了之后更好学习其他语言,更好的完成工作内容,所以不必纠结了。在说些C语言太难的问题,这个难其实是因人而异的,而且学习之后的效果也差别很大,所以不是很好定义,但是从大多数学习编程的经验来看,任何一门编程都不算很难,原创 2020-06-01 23:51:54 · 37791 阅读 · 0 评论 -
编写高效C语言的四大绝招 !!!
编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:方法A:通常的办法1#defineLEN322charstring1[L...原创 2020-02-06 11:06:29 · 37292 阅读 · 0 评论 -
指针和地址之间的关系是什么?
学习交流可加微信读者交流①群 (添加微信:coderAllen)程序员技术QQ交流①群:736386324**常见的一个疑问是:归根结底, 指针就是地址, 地址就是内存中被分配的“门牌号”。 所以, 指针类型和 int类型应该是一回事吧!**实际上, 从某种意义来看, 这种认识也不无道理。在 C 语言前身的 B 语言中, 指针和整数是没有区别的。 此外, 虽然我们经常使用 pri...原创 2019-10-24 00:15:25 · 40713 阅读 · 0 评论 -
C语言中指针是什么?
学习交流可加微信读者交流①群 (添加微信:coderAllen)程序员技术QQ交流①群:736386324恶名昭著的指针究竟是什么“ 指针是一种保存变量地址的变量,在 C 中频繁地使用。”“指针类型”其实不是单独存在的,它是由其他类型派生而成的因为“指针类型”是类型,所以它和 int 类型、double 类型一样,也存在“指针类型变量”和“指针类型的值”。糟糕的是,“指针类型”、...原创 2019-10-18 22:13:37 · 37168 阅读 · 0 评论 -
开发具有可变长参数的函数的方法
学习交流可加微信读者交流①群 (添加微信:coderAllen)程序员技术QQ交流①群:736386324前提:ANSI C 为了提高可移植性, 通过头文件stdarg.h提供了一组方便使用可变长参数的宏我们考虑写一个山寨版的 printf(), 取名为 tiny_printf()tiny_printf()的第一个参数指定后续的各参数的类型, 第二个参数开始指定需要输出的值tin...原创 2019-10-17 20:17:55 · 36938 阅读 · 0 评论 -
C语言推荐书籍从入门到进阶带你走上大牛之路(珍藏版)
微信交流群,添加微信「coderAllen」(回复“进群”)QQ技术交流①群(736386324)书籍介绍一.C语言入门,初学,编程基础系列1.《C语言程序设计:现代方法》(第2版)推荐理由:时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调...原创 2019-10-20 17:16:37 · 59968 阅读 · 1 评论 -
Windows下学习C语言有哪些集成开发软件?
前言初学者学习C语言遇到的最大困难想必就是搭建环境了,相当多的初学者就是被搭建环境导致放弃了学习编程,就我自己的经验而言,初学编程不应该受限于环境,使用成熟好用的环境就可以了,之后熟悉一些可以在慢慢探究。想到大多数小伙伴都是使用Windows系统,今天就先说下Windows系统下有哪些学习C语言的集成开发环境,由于篇幅问题,具体安装方法之后再详细分解。什么是集成开发工具(IDE)这里大家如果...原创 2019-08-22 23:29:22 · 39648 阅读 · 0 评论 -
implicit declaration of function 警告解决方法 (函数的隐式说明)
这个问题其实是很低级的问题,但是经常还是容易发生,翻译下就是函数的隐式说明原因:是因为函数没有在头文件(.h)定义,这就导致编译的时候没法正确生成.o文件...原创 2019-07-20 22:03:19 · 183003 阅读 · 11 评论 -
C语言探究 - 什么时候使用const?
学习交流加(可免费帮忙下载CSDN资源):个人微信:coderAllen学习交流资源分享①群:736386324[译者注]有些地方按原文解释不通,译者根据自己的理解作了适当修改。如有不妥之处,请告知coolgrass@sina.com或参考原文。原文来自www.codeproject.com简介当我自己写程序需要用到const的时候,或者是读别人的代码碰到const的时候,...原创 2019-05-30 08:19:52 · 38303 阅读 · 0 评论 -
C语言 数组类型 详细总结
对字(Word)、半字(Half-Word)、字节(Byte)的概念说明如下:1.字(Word):在ARM体系结构(32位机)中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。2.半字(Half-Word):在ARM体系结构(32位机)中,半字的长度为16位,与8位/16位处理器体系结构中字的长度一致。3.字节(Byte):在ARM体系结构(32位...原创 2019-05-08 22:31:42 · 40915 阅读 · 0 评论 -
补码计算方法
很基础的知识,但是确实很多人并不知道怎么计算,总结了下,可以收藏,需要的时候看下。与编程息息相关学习目标: 在vc++6.0中int类型所能存储的数字的范围是多少 int类型所能存储的最大正数用十六进制表示:7FFF FFFF int类型所能存储的绝对值最大的负数用十六进制表示是:8...原创 2019-05-08 21:54:12 · 58113 阅读 · 1 评论 -
条件编译命令分析:#error 和 #line,#pragma,# 和 ## 操作符使用
知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》,有兴趣的朋友可以看我置顶文章获取#error 和 #line 使用分析#error 用于生成一个编译错误消息用法: #error message (message不需要使用双引号)#error 编译指示字用于自定义程序特有编译错误消息类似的,#warn...原创 2019-04-07 22:15:27 · 38214 阅读 · 0 评论 -
Memset memcpy Strcpy 函数使用探究
做串口通信时用到的函数,这篇不错,整理下使用一个小例子:*memcpy(txbuf,“添加的内容\n”,100);HAL_UART_Transmit(&husartx,txbuf,strlen((char)txbuf),1000);原网址:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=466498&...原创 2019-04-02 08:33:59 · 37978 阅读 · 0 评论 -
如何用C语言画一个高逼格的“心形“?
本文转自知乎:http://www.zhihu.com/question/20187195 Milo Yip大神的回答#include <stdio.h>转载 2019-07-05 07:28:27 · 55085 阅读 · 5 评论 -
实例源码 --- C语言精彩编程百例
知识来源主要是《C语言精彩编程百例》及源码,有兴趣的朋友可以看我置顶文章获取C语言精彩编程百例PDF及源码资料原创 2018-12-30 18:50:55 · 2044 阅读 · 0 评论 -
错误解决---void value not ignored as it ought to be
gcc中出现了“void value not ignored as it ought to be”错误,原因是你使用的一个函数的返回值类型是void,而你有对它进行了赋值处理。例如:int ret;ret=unregister_chrdev(MAJOR_NUM,"globalvar"); ...原创 2018-12-26 22:57:27 · 9209 阅读 · 0 评论 -
lua 学习资料推荐
1.首先就是官网(最好的介绍)http://www.lua.org/2.我经常去的易百教程https://www.yiibai.com/lua/3.经常去的菜鸟教程http://www.runoob.com/lua/lua-basic-syntax.html4.GitHub,最好的深入方法还是看源码https://github.com/lua/lua...原创 2018-11-26 22:14:15 · 38811 阅读 · 0 评论 -
C语言实例 2 四位十六进制转换为十进制
这个问题是在处理485解帧时,存在几位十六进制代表所需要的值,想知道一种方法直接得到所需的值解决方法:http://bbs.csdn.net/topics/391029805问题:例如: char sDec[4] = {0x05,0xc5,0xb3,0xea}; 怎样把 0x05,0xc5,0xb3,0xea 组合成一个十六进制数 0x05c5b3ea ,...原创 2018-09-03 20:44:28 · 42265 阅读 · 0 评论 -
C语言实例 1 学生成绩管理系统
#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<dos.h>#include<string.h>#define LEN sizeof(struct student)#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%...原创 2018-09-03 20:40:57 · 45139 阅读 · 7 评论