
c
文章平均质量分 73
盼海
13年的嵌入式底层开发经验,涉及智能硬件、工业控制等多个领域。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Visual Studio调试中的“已加载ntdll.dll,无法查找或打开PDB文件”提示
Visual Studio调试中的“已加载ntdll.dll,无法查找或打开PDB文件”提示。原创 2024-11-02 13:33:47 · 2158 阅读 · 0 评论 -
补码的作用和用法示例
在现代计算机科学中,补码(Complement Code)扮演着至关重要的角色,特别是在处理整数的表示和运算方面。原创 2024-10-31 08:00:00 · 814 阅读 · 0 评论 -
C语言中#error的作用
errorC语言中#error的作用在C语言编程中,#error预处理指令是一项非常有用的功能,它允许开发者在编译时根据特定条件强制生成编译错误。这一特性在条件编译、代码维护、版本控制以及确保代码与特定环境或配置兼容时尤为重要。本文将深入探讨#error指令的作用、用法以及它在软件开发周期中的价值。原创 2024-10-24 08:00:00 · 944 阅读 · 0 评论 -
C语言中关键字static的作用
static关键字在C语言中是一个强大的工具,它通过对变量和函数的作用域和生命周期进行控制,提高了程序的封装性、模块性和内存效率。然而,也需要注意static可能带来的副作用,如增加程序的内存占用和可能导致的命名冲突等,因此在使用时需要权衡利弊,合理选择。在C语言编程中,static是一个非常重要的关键字,它扮演着多重角色,影响着变量和函数的可见性与生命周期。然而,当局部变量被static修饰时,它的生命周期将贯穿整个程序运行期间,但其作用域仍然限制在定义它的函数内部。这种变量称为静态局部变量。原创 2024-10-24 08:15:00 · 465 阅读 · 0 评论 -
C语言-文件读写代码详解
C语言中的文件读写操作虽然相对基础,但掌握它们对于深入学习C语言以及进行实际的项目开发都是至关重要的。通过本文的介绍,希望读者能够对C语言中的文件读写操作有一个清晰的认识,并能够在实际编程中灵活运用。原创 2024-10-23 08:00:00 · 1431 阅读 · 0 评论 -
C语言 goto的妙用
综上所述,goto语句在C语言中并非一无是处的“过时”特性。在特定场景下,它能够以简洁高效的方式解决复杂问题。然而,正如任何强大的工具一样,使用goto语句也需要我们保持谨慎和理智,确保其在提升代码质量的同时,不会成为代码可读性和可维护性的绊脚石。原创 2024-10-21 17:28:58 · 645 阅读 · 0 评论 -
C语言函数实现:深入理解strcpy
C语言函数实现:深入理解strcpy在C语言编程中,字符串处理是一项基础且重要的任务。strcpy函数作为C标准库中的一个基本函数,用于将一个字符串(包括空字符’\0’)复制到另一个字符串中。虽然strcpy函数功能简单直接,但其背后的实现细节和安全性问题却是程序员需要深入了解和注意的。本文将详细探讨strcpy函数的实现原理、应用场景,以及在使用时需要注意的安全性问题。原创 2024-10-20 18:53:16 · 780 阅读 · 0 评论 -
C语言:函数指针与指针函数的区别*
函数指针是指向函数的指针,它存储了函数的地址,使得我们可以通过指针来调用函数。在C语言中,函数名在表达式中通常会被编译器转换为指向该函数的指针。与函数指针不同,指针函数是指返回值为指针的函数。这里的“指针”可以是任意类型的指针,如整型指针、结构体指针等。原创 2024-10-20 17:48:29 · 572 阅读 · 0 评论 -
C语言malloc()函数与calloc()函数的区别
是C语言中两个非常重要的内存分配函数,它们各有优缺点,适用于不同的场景。函数是C标准库中用于动态内存分配的两个常用函数,它们在功能上有相似之处,但在使用方式和特性上存在一些区别。在分配内存后会进行初始化,这在某些情况下是必要的,但额外的初始化过程可能会略微降低性能。函数返回一个指向分配的内存块的指针,如果分配失败,则返回。其内容是未定义的,即可能包含任何值,这取决于分配之前的内存状态。如果你需要一个已经初始化为零的内存块,或者需要分配的元素数量非常明确,那么。,以处理内存分配失败的情况。原创 2024-09-27 21:15:11 · 500 阅读 · 0 评论 -
C语言内存模型的五个核心区域
C语言的内存模型是理解C语言及其性能优化的重要基础。通过合理利用栈区、堆区、静态区、常量区和代码区等内存区域,可以提高程序的执行效率和稳定性。然而,在使用堆区等需要手动管理内存的区域时,程序员需要特别注意避免内存泄漏和野指针等问题,以确保程序的健壮性和可靠性。原创 2024-09-27 21:05:20 · 654 阅读 · 0 评论 -
Git忽略规则原理和.gitignore文件不生效的原因和解决办法
然而,在实际使用过程中,有时我们会发现.gitignore文件中的规则并未生效,导致一些不希望被追踪的文件仍然出现在Git仓库中。当执行git add、git status等命令时,Git会检查.gitignore文件,并根据其中的规则决定是否忽略某些文件或目录。如果某个文件在.gitignore文件被添加之前已经被Git追踪(即已经通过git add命令加入到暂存区或已经被提交到仓库中),那么即使该文件符合.gitignore中的忽略规则,Git仍会继续追踪它。2、文件位置不正确.gitignore。原创 2024-09-25 10:01:25 · 961 阅读 · 0 评论 -
C 语言的编译过程包括四个步骤
定义宏,即给某个标识符赋予特定的替换文本。原创 2024-09-25 09:43:14 · 1277 阅读 · 2 评论 -
单片机中断机制:提升系统效率与响应能力的关键技术
单片机中断机制作为提升系统效率与响应能力的关键技术,在嵌入式系统设计中发挥着不可替代的作用。通过深入理解中断机制的基本原理、分类、应用优势以及设计实现中的注意事项,开发者可以更加高效地利用这一技术,构建出高性能、高可靠性的嵌入式系统。原创 2024-09-24 16:49:19 · 1758 阅读 · 0 评论 -
volatile关键字在C语言中的用法
volatile是C语言中一个非常重要的关键字,它用于指示编译器在处理特定变量时应该采取谨慎的态度。在硬件编程、多线程编程等复杂场景中,合理使用volatile可以帮助开发者编写出更加健壮和可靠的程序。然而,开发者也需要注意不要滥用volatile,并理解其背后的原理和限制。原创 2024-09-22 19:18:54 · 710 阅读 · 0 评论 -
蓝牙HID协议笔记
1.概述The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议、特征和使用规范。典型的应用包括蓝牙鼠标、蓝牙键盘、蓝牙游戏手柄等。该协议改编自USB HID Protocol。2.一些概念(1)HID Reports:Bluetooth HID Device 支持三种:Reports: Input、output、Feature.转载 2015-03-19 10:18:05 · 2277 阅读 · 0 评论 -
linux I2c设备注册
OMAP3630 I2C device驱动 在Linux内核中,I2C device驱动位于drivers/i2c/chips目录下,可以看到该目录下有很多相关的device驱动,这里以xxxx项目的mma7455为例介绍device驱动的注册过程,对应的device驱动程序为mma7455.c。 既然有device驱动,那么必定有相应的device,I2C的device是转载 2015-12-09 17:43:43 · 2331 阅读 · 0 评论 -
工作项、工作队列和工作者线程
工作项、工作队列和工作者线程 把推后执行的任务叫做工作(work),描述它的数据结构为work_struct ,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct ,而工作线程就是负责执行工作队列中的工作。系统默认的工作者线程为events。 工作队列(work queue)是另外一种将工作推后执行的形式。工作队列可以把工作推后转载 2016-02-17 11:46:45 · 982 阅读 · 0 评论 -
cypress dma简介
FX3 DMA 架构的基本情况FX3 器件有一个内部 DMA 结构,用来将 GPIF II 接口连接至内部系统存储器和其他串行外设。通过 GPIF II 接口传输的所有数据都是传入/传出内部存储器缓冲区的。通过在 FX3 上运行的固件应用将该数据路径(使用 DMA 结构)连接至合适的发送器或接收器(如 USB 主机或串行外设)。1 套接字 (Sockets )USB 3.0 器件上的每一个端口都...原创 2018-02-26 18:00:58 · 1136 阅读 · 0 评论 -
STM32 DCMI调试
之前调试一款摄像头没有仔细读stm32数据手册,用库函数写的,sensor的数据手册配置和dcmi配置的HSYNC和VSYN都是低电平有效,读摄像头sensor示波器波形也是低电平有效,但是数据就是读不出来。摄像头HSYNC和VSYN信号:之后读stm32的数据手册时发现DCMI_CR寄存器:此位指示数据在并行接口上无效时 HSYNC 引脚的电平。所以stm32 DCMI接口HSYNC和VSYN的...原创 2018-03-08 12:43:01 · 3929 阅读 · 1 评论 -
函数指针和指针函数
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变转载 2014-03-07 16:51:30 · 397 阅读 · 0 评论