1 CC++ 编译模式通常,在一个 C++ 程序中,只包含两类文件—— .cpp 文件和 .h 文件。其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码;而 .h 文件则被称作 C++ 头文件,里面放的也是 C++ 的源代码。C++ 语言支持“分别编译”(separatecompilation)。也就是说,一个程序所有的内容,可以分成 …
ifndef
笔试部分1.描述下面代码中两个static各自的含义:static void func(void){static unsigned int i; }参考答案:行1,static表示静态函数,该函数只有当前文件的其他函数才可以调用它行3,局部静态变量生存周期:从程序运行到程序结束作用域:只有当前函数才可以访问段位置:全局data段【不是栈区】,并且每次访问都会 …
在看LiteOS源代码的时候,遇到WAEK关键字,如下示例:kernelbaselos_lockdep.c:WEAK VOID OsLockDepPanic(enum LockDepErrType errType){* halt here *(VOID)errType;(VOID)LOS_IntLock();OsBackTrace();while (1) { …
话说,今天要来说下这个叫Jordan Molina的小哥小哥玩得最666的,就是3D画最开始,他就在纸上玩一玩这种都还算是初期的入门画后来..他发现要是把纸剪一下的话….这3D的逼真效果然马上上了一个档次…..这么下去?还不过瘾…. 现在他已经直接在自己的手掌上玩了起来一个用拉链开关的伤口,可以看到手心里的肉….手心破了一个洞,可以透视出一只笔….手心有一个 …
#define:C语言神兵利器的深度解析与避坑指南在C语言的工具箱里,预处理器指令#define绝对是重量级的存在。它以其简洁的语法和强大的功能,几乎出现在每一段重要的C代码中。它可以是效率的催化剂,也可以是噩梦的源头。今天,我们就来深入剖析#define这把“双刃剑”,解锁它的强大用法,同时揭示那些令人防不胜防的深坑。一、 基础认知:不仅仅是文本替换#de …
前面我们学习了STM32智能家居系统中的温湿度检测及控制系统。这一期我们学习光照检测控制系统。7.1 项目的介绍如图1所示。整体项目采用光敏传感器采取环境的光照强度,当光照强度的值高于某一设定值时(光照强度的数值与外界环境的亮度成反比,外界越亮,值越小),电机逆时针转动,模仿打开遮阳帘,LED灯点亮;当光照强度的值低于某一设定值时,电机顺时针转动,模仿关闭遮 …
在嵌入式系统编程中不管是内核的驱动程序还是应用程序的编写,涉及到大量的预处理与条件编译,这样做的好处主要体现在代码的移植性强以及代码的修改方便等方面。因此引入了预处理与条件编译的概念。在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分。通过预处理命令可扩展C语言程序设计的环境。预处理的 …
Silero VAD 是由 Silero AI 团队开发的一个开源、轻量级且高性能的语音活动检测(VAD)模型。它旨在检测音频流中的语音段,帮助系统知道何时有人在说话,何时是静音。高精度和低延迟:在 CPU 上处理约 30 毫秒的音频块可在 1 毫秒内完成,使用 ONNX 或 GPU 加速时甚至更快。体积小:JIT 模型大约为 1-2 MB。多语言且健壮:在 …
写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不展开,本文主要讨论JUC里的ReentrantLock锁。一 JDK层1 AbstractQueuedSynchronizerReentrantLock的loc …
在嵌入式开发领域,当需要高效利用有限资源或应对大量异步操作时,采用事件驱动架构能显著提升系统的性能和可靠性。本次推荐一个轻量级事件管理库——lwevt。lwevt 简介基本介绍https:github.comMaJerlelwevtlwevt 是一款专为嵌入式系统打造的轻量级事件管理库,基于 C 语言开发。它的设计目标是提供高效、简洁的事件处理机制,帮助开发 …