写文章
发视频
提问题
传文档
电子设计讲堂 专家精讲课程 知识传授指导
前沿电子资讯 电子技术干货 经验知识总结
设计问答汇总 在线答疑解惑 达人倾囊相授
专业行业文档 知识类目清晰 要点一键下载
阻抗计算神器 多层板阻抗 凡亿层压结构
PCB设计指南 EDA设计指南 封装设计指南
Symbol下载 PCB封装下载 3D模型下载
快速打孔设置 器件快速聚拢 一键检查跨分割
凡亿ADSkill工具 敷铜脚本插件 快速添加差分
技术题库汇总 如何谈薪资 常见面试技巧
优质电子公司 专业人才简历 高薪一键触达
凡亿是国内领先的电子研发和技术培训提供商,是国家认定的高新技术企业。以“凡亿电路”“凡亿教育”作为双品牌战略,目前近110万电子会员,技术储备为社会持续输送7万余人高级工程师,服务了1万多中小型企业合作伙伴。
我是老温,一名热爱学习的嵌入式工程师关注我,一起变得更加优秀!在嵌入式 C 语言的 C89/C90 标准里面,要求程序员在初始化程序中的各个变量元素时,要以固定的顺序进行,并且要与被初始化的数组和结构体的元素顺序相同。在后来的新标准 C99/C11 里面,新增加了一个灵活且好用的特性:指定初始化器(
回调函数关于回调函数,在之前的文章《回调函数》已经详解讲解过了,这个文章不再讲解,不太懂的同学请看之前的文章《回调函数》。在之前讲解回调函数中就使用串口作为示例,使用回调函数可以方便封装通讯库,芯片/模块厂家的SDK和部分开源库经常这样做,这样可以实现模块间的解耦,模块化编程。这篇文章主要讲解回调函
1. 问题背景 最近有小伙伴对于 C 语言中指针的运算有点疑问:指针变量加 1 之后,到底向后偏移了几个字节呢?示例代码如下,这段代码运行在32位CPU平台上:#include#pragma pack(1)struct tree{ int height; int age; char tag;
引言最近在查一个bug,查到最后发现是数组越界导致的。数组只有30个字节,代码却向这个数组填充了35个数据,这个bug还是偶现的,查到它确实废了一番功夫。我就突然想到:C语言为什么不检查数组下标呢???先来个demo验证下#include#includeint main(){ int data
在C语言里,存储类型(也称为类型声明)是变量或函数声明的一部分,用于指定变量的存储方式、作用域及生命周期,正确选择这些存储类型,有利于维护代码性能。1、auto类型描述:auto是C语言中的默认存储类型,用于定义在寄存器上的变量。然而,实际
在防御性编程的大框架之下,有许多常识性的规则。人们在想到防御性编程的时候,通常都会想到“断言”,这没有错。我们将在后面对此进行讨论。但是,还是有一些简单的编程习惯可以极大地提高代码的安全性。尽管看上去像是常识,但是这些规则却往往被人们忽视,这就是为什么世界上并不缺少低质量软件的原因。只要程序员们警惕
我是老温,一名热爱学习的嵌入式工程师关注我,一起变得更加优秀!良好的编程习惯,决定了今后代码的质量。很多工程师不注重平时编码习惯,比如命名规则,一会大写、一会小写,一会中文拼音,一会下划线等,导致自己写的代码自己都看不懂了。今天就来分享一点关于软件代码常见的几种命名规则。匈牙利命名法匈牙利命名法广泛
我是老温,一名热爱学习的嵌入式工程师关注我,一起变得更加优秀!0./* * Dear Maintainer * * Once you are done trying to ‘optimize’ this routine, * and you have realized what a terrible
在C语言中,很多人会学习指针,也会遇到指针变量*p和取值运算*p,这两个符号相同,如何区分?1、声明指针变量时int *p;这里,*p表示p是一个指向int类型的指针变量。*号出现在类型int和变量名p之间,用来指明p是指针类型。2、取值运
我是老温,一名热爱学习的嵌入式工程师关注我,一起变得更加优秀!嵌入式系统设计不仅需要了解硬件,还需了解软件是如何影响硬件并与硬件进行交互的。设计硬件所需的范式可能与设计软件完全相反。当从硬件设计转向包含软件的设计时,硬件工程师应牢记以下十个技巧。 技巧 1:流程图第一,实现第二当工程师首次迈入软件开
我是老温,一名热爱学习的嵌入式工程师关注我,一起变得更加优秀!引言 当项目小组做一个相对较复杂的工程时,意味着你不再独自单干。而是和小组成员分工合作,这就要求小组成员各自负责一部分工程。比如你可能只是负责通讯或者显示这一块。这个时候,你就应该将自己的这一块程序写成一个模块,单独调试,留出接口供其它模
我是老温,一名热爱学习的嵌入式工程师关注我,一起变得更加优秀!一、5大内存分区内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。2、
看到有小伙伴在讨论关于“造轮子”的话题,各有各的观点,这里先说两种常见的情况。第一种情况:老板从来不催进度,做项目的工程师也不慌不忙,从零开始一步一步创建工程,然后一步一步写代码(即从0开始造轮子)。当把项目做好,或者项目才做到一半时,公司可能就已经倒闭了。第二种情况:老板要求在尽量短的时间把项目赶
4、结构体成员的布局很多编译器有“使结构体字,双字或四字对齐”的选项。但是,还是需要改善结构体成员的对齐,有些编译器可能分配给结构体成员空间的顺序与他们声明的不同。但是,有些编译器并不提供这些功能,或者效果不好。所以,要在付出最少代价的情况下实现最好的结构体和结构体成员对齐,建议采取下列方法:(1)
1、选择合适的算法和数据结构选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。在许多种情况
发文章
第一期&90天射频电路开发实战特训班
Altium Designer内电层内缩问题怎么解决?
【第1篇】新学习路线、视频介绍、资料下载
SOC系统的跨时钟异步处理
【每日精选】 嵌入式 1-97讲
【硬核】肌电信号采样共模干扰消除仿真验证
2025-03-20 14:53
2025-03-14 17:27
2025-02-27 17:10
2025-02-11 17:53
2023-08-21 16:30:02
2023-08-26 13:52:07
2023-08-26 13:52:41
2023-08-26 13:52:59
2023-08-27 22:52:59
2023-08-30 15:55:42
2023-09-09 14:36:37
2023-09-09 15:31:00
2023-09-09 15:41:33
2023-09-09 16:37:29
2023-09-09 16:38:54
我要投稿
技术文章
视频教程
百问百答
下载APP
在线客服