
★嵌入式高级C语言(非常重要)
文章平均质量分 58
嵌入式入门到精通第七门课,C语言是嵌入式开发做基础和核心的知识,本专栏会从头开始把嵌入式C语言实践及面试技巧都教给你!
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
CodeAllen嵌入式
公众号【CodeAllen嵌入式】,CSDN博客专家,专注通信电子及嵌入式软件方向职业规划,全网技术矩阵粉丝15w+,欢迎交流一起成长!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高级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 · 38220 阅读 · 0 评论 -
implicit declaration of function 警告解决方法 (函数的隐式说明)
这个问题其实是很低级的问题,但是经常还是容易发生,翻译下就是函数的隐式说明原因:是因为函数没有在头文件(.h)定义,这就导致编译的时候没法正确生成.o文件...原创 2019-07-20 22:03:19 · 185523 阅读 · 11 评论 -
[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 · 39273 阅读 · 0 评论 -
%c对应类型为char, %s对应类型为char *
%c对应类型为char, %s对应类型为char *, 即字符串.用作输入时, 二者参数都要传char*型. %c输入函数只会对一个字节空间赋值. 而%s会一直赋值,直到输入中遇到空白字符为止.用作输出时, %c传char类型,输出一个字符. %s传char*类型参数, 输出到\0为止....原创 2021-08-22 15:35:49 · 43971 阅读 · 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 · 38294 阅读 · 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 · 46048 阅读 · 0 评论 -
【专栏】8086汇编语言系列教程
学习交流加(可免费帮忙下载CSDN资源):个人微信:coderAllen学习交流资源分享①群:736386324更多更新文章请关注 公众号:【Allen5G】\color{#FF3030}{公众号:【Allen5G】}公众号:【Allen5G】 ,专注逻辑思维提升,程序员职业进阶8086汇编学习第1篇—基础知识8086汇编学习第2篇—寄存器(CPU工作原理)8086汇编学习第3篇...原创 2019-08-10 12:24:35 · 10510 阅读 · 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 · 10044 阅读 · 0 评论 -
【嵌入式面试题】C语言基本构成元素总结
之前有同学让我帮忙总结下嵌入式C语言需要学习的知识点,下边是我利用业余时间总结的思维导图,仅供参考。原创 2023-01-08 22:47:47 · 658 阅读 · 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 · 2212 阅读 · 0 评论 -
汇编学习软件推荐 - 汇编金手指
汇编的学习只要理解底层操作即可,在调试期间很有用,开发还是使用高级语言,所以很多指令不用背,推荐一个查询的软件这款软件可以直接查询需要的指令,有详细的介绍和使用方法编写汇编软件:debug软件见之前的文章:Windows 7 64位系统安装汇编程序 debug.exe下载地址:链接:https://pan.baidu.com/s/1fzwKNzvMsOF_zCpLbl0JBw提取码:r0...原创 2020-04-10 02:02:29 · 20430 阅读 · 2 评论 -
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 · 10898 阅读 · 0 评论 -
C语言后记-31 Vim快捷键及使用技巧
● 替换模式:在普通模式下通过光标选中一个字符,然后按r键,再输入一个字符,你会发现你输入的字符就替换掉了原来那个被选中的字符。● 命令行模式:普通模式下输入冒号(:)后会进入该模式,在该模式下输入命令,如输入:set number或:set nu可以显示行号。● 插入模式:按i/o/a键进入该模式,进行文本编辑操作,不同之处在于插入字符的位置在光标之前还是之后。● 普通模式:打开文件时的默认模式,在其他模式下按下ESC键都可返回到该模式。● k:在普通模式下,敲击k键,光标向上移动一个字符。原创 2023-08-30 23:04:18 · 959 阅读 · 0 评论 -
C语言后记-30 汇编语言入门教程
学习编程其实就是学高级语言,即那些为人类设计的计算机语言。但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。学会高级语言,并不等于理解计算机实际的运行步骤。计算机真正能够理解的是低级语言,它专门用来控制硬件。汇编语言就是低级语言,直接描述/控制 CPU 的运行。如果你想了解 CPU 到底干了些什么,以及代码的运行步骤,就一定要学习汇编语言。汇编语言不容易学习,就连简明扼要的介绍都很难找到。下面我尝试写一篇最好懂的汇编语言教程,解释 CPU 如何执行代码。原创 2020-12-13 21:38:23 · 1162 阅读 · 0 评论 -
C语言后记-29 嵌入式软件数据结构的特点
嵌入式系统的定义是:以应用为中心,以计算机技术为基础,软件硬件可以裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。通俗来说,除了通用计算机,比如笔记本电脑和台式机电脑之外的所有包含CPU的系统都是嵌入式系统。嵌入式操作系统因为近年来的发展,其种类和功能已经多种多样,如果从性能上分的话,主要有高级嵌入式系统和中低档嵌入式系统。高级嵌入式主要是给类似于收集,数码相机之类的多媒体设备使用。这类设备对硬件的要求很高,RAM比较大,CPU的速度也比较快。原创 2021-08-22 15:31:58 · 39328 阅读 · 0 评论 -
C语言后记-28 C语言中,再对文件的操作模式中,a和a+、w和w+、r和r+有什么区别?
在C语言中,文件操作模式(通过fopen()函数指定)的aa+ww+rr+决定了文件的打开方式、读写权限和初始位置。原创 2021-08-22 15:27:27 · 51110 阅读 · 0 评论 -
C语言后记-27 推荐三个 C 语言开源项目
Lua 的解释器由 ANSI C 编写,具有跨平台特性,并提供相对简单的 C 应用程序编程接口(API),便于嵌入到各种应用程序中。因为很多同学感觉C语言比较枯燥,学习没有意思,今天这篇文章就是想介绍一些在网站上看到的C语言小项目,帮助大家深入学习。为了提升用户体验,卡片集成了电子墨水屏,并开发了配套的 Android 应用,用于显示内容的定制。Lua 的设计注重轻量级,完整的参考解释器编译后仅约 247KB,适用于各种嵌入式平台。这是一个开源算法实现的集合,使用C语言编写,并采用GPLv3许可证。原创 2018-02-13 11:38:00 · 41065 阅读 · 4 评论 -
C语言后记-26 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 · 37358 阅读 · 0 评论 -
C语言后记-25 #include<>和#include“ “区别
一般来说#include <> 的查找位置是标准库头文件所在目录#include “” 的查找位置是当前源文件所在目录补充:""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。若 #include “” 查找成功,则遮蔽 #include <> 所能找到的同名文件;否则再按照 #include <> 的方式查找文件。另外标准库头文件都放在 #include <> 所查找的位原创 2020-11-06 22:53:07 · 38862 阅读 · 0 评论 -
C语言后记-24 C语言复杂指针阅读方法 - 右左法则
简化的方法就是typedef,这个是使用的非常广的,可以简化指针和数组的定义。3.遇到圆括号或方括号时可以确定部分类型,并调转方向。1.从最里边的圆括号中未定义的标识符看起。不过我还是用比较容易理解的方式记录一下。但是在简化之前应该先读懂这个代码!4.重复2 3 步骤,直到阅读结束。2.首先往右看,在往左看。可以看下我之前的文章。原创 2020-09-01 00:08:40 · 73164 阅读 · 2 评论 -
C语言后记-23 左右法则(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 · 37182 阅读 · 0 评论 -
C语言后记-23 C语言中<<、>>、&、|的实际用途
作为一个开发人员,在看别人项目或者看第三方库的源代码时,可能经常会看到譬如a>>4&0x0f这样的写法,对于一些初入行的童鞋来说可能就不是太明白这是什么意思。下面我们就来讲解这几个运算符的实际用途。原创 2020-08-07 22:07:56 · 48028 阅读 · 2 评论 -
C语言后记-22 初学者如何入门C语言
原文链接:公众号:Allen有话说之前发了一篇初学者首先应该的学的编程语言,我的建议是C语言,然后有个朋友就私信我说C语言太难学了,学会了也没什么用等等。一看就是没看完就开始刚我了,我是建议先学,后边肯定还得继续学习,有分析称薪资最高的程序员群体掌握的编程语言为四种。也就是说学习C语言只是为了之后更好学习其他语言,更好的完成工作内容,所以不必纠结了。在说些C语言太难的问题,这个难其实是因人而异的,而且学习之后的效果也差别很大,所以不是很好定义,但是从大多数学习编程的经验来看,任何一门编程都不算很难,原创 2020-06-01 23:51:54 · 37891 阅读 · 0 评论 -
C语言后记-21 编写高效C语言的四大绝招
当然,由于编译器的不同,可能效率的差距不大,但是,以我目前遇到的MS C ,ARM C 来看,效率的差距还是不小。数学是计算机之母,没有数学的依据和基础,就没有计算机的发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。D方法是我看到的最好的置位操作函数,是ARM公司源码的一部分,在短短的三行内实现了很多功能,几乎涵盖了所有的位操作功能。计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。原创 2020-02-06 11:06:29 · 37374 阅读 · 0 评论 -
C语言后记-20 指针和地址之间的关系是什么?
因为编译器可以记住“hoge_p 是指向 int 的指针”, 所以只需要简单地在 hoge_p 前面添加*, 就可以通过指针间接取值。归根结底, 指针就是地址, 地址就是内存中被分配的“门牌号”。所以, 指针类型和 int类型应该是一回事吧!但是, 像第 5 行这样在 hoge_p 前附加*……原创 2019-10-24 00:15:25 · 40860 阅读 · 0 评论 -
C语言后记-19 C语言中指针是什么?
int* a, b;原创 2019-10-18 22:13:37 · 37246 阅读 · 0 评论 -
C语言后记-18 开发具有可变长参数的函数的方法
【代码】C语言后记-18 开发具有可变长参数的函数的方法。原创 2019-10-17 20:17:55 · 36986 阅读 · 0 评论 -
C语言后记-17 C语言推荐书籍(珍藏版)
1.《C语言程序设计:现代方法》(第2版)推荐理由:时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。原创 2019-10-20 17:16:37 · 60794 阅读 · 1 评论 -
C语言后记-16 Mac端C语言学习软件
与Windows类似,Mac上的IDE同样整合了编辑器、编译器、调试器等工具,提供图形化界面以简化开发流程。原创 2019-08-22 23:29:22 · 39739 阅读 · 0 评论 -
C语言后记-15 什么时候使用const
你应该尽可能的使用const引用,通过声明你的函数参数为常变量(任何可能的地方)或者定义那种const method,你就可以非常有效确立这样一种概念:本成员函数不会改变任何函数参数,或者不会改变任何该对象的数据。当我自己写程序需要用到const的时候,或者是读别人的代码碰到const的时候,我常常会停下来想一会儿。C/C++中,数据传递给函数的方式默认的是值传递,也就是说当参数传递给函数时会产生一个该参数的拷贝,这样该函数内任何对该参数的改变都不会扩展到此函数以外。任何对引用的改变都将改变原变量。原创 2019-05-30 08:19:52 · 38430 阅读 · 0 评论 -
C语言后记-14 数组类型详细总结
1数据类型关键字。原创 2019-05-08 22:31:42 · 41025 阅读 · 0 评论 -
C语言后记-13 补码计算方法
原码简单,但是加减复杂,存在加减乘除四种运算,增加了CPU的负荷。除3取余,直到商为0,余数倒序排列。就是 FFFF FFFD。先求与该负数相对应的正整数的二进制代码,然后将所有为取反,末尾加一,不够位数时,移码主要用于浮点数的阶码的存储。反码:运算不便,也没有在计算机中应用。移码:表示数值平移n位,n称为移码量。占四个字节,32位,所以补29个1。原码:也叫 符号-绝对值码。,其余二进制位的数字的绝对值的二进制位。作业:8位二进制转化为十进制。2.已知二进制求十进制。原创 2019-05-08 21:54:12 · 58559 阅读 · 1 评论 -
C语言后记-12 条件编译命令分析:#error #line #pragma # 和## 操作符使用
#error 和 #line 使用分析#error 用于生成一个编译错误消息用法: #error message (message不需要使用双引号)#error 编译指示字用于自定义程序特有编译错误消息类似的,#warn...原创 2019-04-07 22:15:27 · 38459 阅读 · 0 评论 -
C语言后记-11 Memset memcpy Strcpy 函数使用探究
【代码】C语言后记-11 Memset memcpy Strcpy 函数使用探究。原创 2019-04-02 08:33:59 · 38063 阅读 · 0 评论 -
C语言后记-10 如何用C语言画一个高逼格的“心形“
把「3D版」输出至PPM文件,可以用Photoshop打开。另外降低了ny的值导致有超有趣的pattern,就保留下来吧。「3D」版,简单使用迭代法求解,用Finite difference求法矢量,用wrapped diffuse着色。简单使用迭代法求解,用Finite difference求法矢量,用wrapped diffuse着色。(这其实是该函数的Level set)原创 2019-07-05 07:28:27 · 55196 阅读 · 5 评论 -
C语言后记-9 Windows端C语言学习软件
我在放弃Dev C++之后选择的平台,刷二级C语言全程使用的IDE,也是一款开源的IDE,他的特点是可以跨平台使用,其实linux下使用不方便,主要还是Windows下使用较多,内置甚至还可以编译单片机代码(不推荐,没必要),有官方绿色版,可以免安装使用.终于到了可以正常使用的版本了,首先Dev C++ 是一款免费开源的 C/C++ IDE,体积很小巧,我初学C语言使用的就是Dev C++,界面很漂亮,因为是内嵌 GCC 编译器,编译感觉很快,但是后边不在使用的原因也是英文调试功能不行,经常卡死。原创 2018-12-30 18:50:55 · 2095 阅读 · 0 评论 -
C语言后记-8 嵌入式C语言核心要素概览
前言:以下是我利用业余时间整理的嵌入式C语言学习知识点思维导图,供同学们参考,希望对大家有所帮助。原创 2018-12-26 22:57:27 · 9414 阅读 · 0 评论 -
C语言后记-7 C语言标准的变迁总结
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 · 38957 阅读 · 0 评论 -
C语言后记-6 四位十六进制转换为十进制
这个问题是在处理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 · 42416 阅读 · 0 评论 -
C语言后记-5 实例-学生成绩管理系统
【代码】C语言后记-5 实例-学生成绩管理系统。原创 2018-09-03 20:40:57 · 45203 阅读 · 7 评论