●
●
●
●
●
●
首页
首页
标签
作者
发现
登录
注册
推荐
人工智能
运营
前端
后端
MQTT协议详解与MSYS2下C语言客户端开发实战
本文详细解析MQTT协议核心机制及其在物联网领域的实战价值,包括QoS等级、会话保持和遗嘱消息等关键特性。通过MSYS2环境下的C语言开发实战,指导读者配置MQTT环境、编译Paho客户端库并实现完整的发布/订阅示例,为物联网设备通信开发提供实用指南。
g8f9d0s1a2
2026-05-18 10:33:32
【 C/C++ 算法】入门动态规划 ----- 简单多状态 dp 问题》打家劫舍 和 股票买卖问题
本章是dp的第三章,从第一章的简单理解dp的核心框架和写法&一维dp,再到第二章的路径问题&二维dp,到本章的多状态dp问题,本章将结合前面的所有基础引入多状态这个问题,并将由浅到深的从简单的打家劫舍两状态的dp到最后股票问题的四状态dp进行以练代学的方式学习。
溟洵
2026-05-18 10:33:22
C语言:预处理详解
本文总结了C语言预处理指令的使用方法,包括预定义符号(如__FILE__、__LINE__等)、宏定义(常量定义、带参数宏定义)、#与##运算符、条件编译以及头文件包含等内容。重点讲解了宏定义的注意事项(如括号使用、副作用参数)和宏与函数的区别,并介绍了条件编译的多种形式(如#if、#ifdef等)以及头文件的两种包含方式。这些预处理技巧能提高代码的灵活性和可维护性,是C语言编程中的重要知识点。
fffzd
2026-05-18 10:33:12
深入理解C语言内存操作函数
本文介绍了四种常用的内存操作函数:memcpy、memmove、memset和memcmp。memcpy用于不重叠内存块的拷贝,memmove可处理重叠内存的拷贝。memset用于内存填充,memcmp用于内存内容比较。文章详细说明了各函数的使用方法,并提供了memcpy和memmove的模拟实现代码。特别强调了memcpy与memmove在处理重叠内存时的区别,以及memset函数按字节填充的特性。这些函数都需要包含<string.h>头文件,在操作内存时需确保目标空间足够且可修改。
小七在进步
2026-05-18 10:33:02
C语言 函数 介绍
ret_type fun_name (形式参数)ret_type 是函数返回值fun_name:函数名称括号中放的是形式参数大括号内就是执行的代码。自定有函数其实就像工厂一样,传参就像原材料,返回值就像产品,大括号的代码就是流水线,函数的名称就是工厂名称。ret_type 是用来表达函数的返回值的产出后的类型,如果不需要放回值,那么就只用void (空型)表示什么都不需要的返回值。
悠仁さん
2026-05-18 10:32:52
【C语言】文件操作以及相关代码的操作和实现
从程序设计的角度,文件分为程序文件和数据文件函数名功能适用于fgetc字符输入函数所有输入流fputc字符输出函数所有输出流fgets文本行输入函数所有输入流fputs文本行输出函数所有输出流fscanf格式化输入函数所有输入流fprintf格式化输出函数所有输出流fread二进制输入文件输入流fwrite二进制输出文件输出流上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);
j7~
2026-05-18 10:32:42
C语言求最大公约数和最小公倍数:从原理到实战完全指南
辗转相除法是实际项目的最佳选择防溢出不是边界处理必须考虑:负数、零、大数公式牢记。
busideyang
2026-05-18 10:32:32
技术复盘从 Turbo C 到 VS2026:遗留代码的现代化移植与算法分析 (Task 99)(课程设计报告)
本文记录了在《程序设计语言》课程实践中,将一份基于 Turbo C 2.0 的遗留 C 语言代码(Task 99 矩阵乘法)移植至 Visual Studio 2026 的完整工程链路。针对老旧代码在现代编译器下的 C4013,C4996 安全报错、K&R 语法不兼容及平台库函数缺失等问题,提出了基于预处理配置与 ANSI 标准化的重构方案。同时,深入分析了代码中利用一维数组模拟二维矩阵的内存映射逻辑,并绘制了详细的系统流程图,最终实现了遗留系统的现代化复活与功能验证。
小狗大王334
2026-05-18 10:32:22
数据结构:双向链表(C语言版)
本文介绍了双向链表(带头双向循环链表)的实现方法。双向链表通过prev和next指针实现双向遍历,使用哨兵位头结点简化边界处理。文章详细讲解了双向链表的结构定义、节点创建、初始化以及各种操作:头插/尾插、头删/尾删、查找、指定位置插入/删除、判空、销毁和打印。相比单链表,双向链表的插入和删除操作更高效(O(1)时间复杂度),但查找仍需O(n)时间。最后总结了双向链表的优势,包括通过哨兵位统一操作逻辑、避免空指针异常等特点。
城行
2026-05-18 10:32:12
C语言中 volatile 关键字总结
本文总结了C语言中volatile关键字的原理与应用。volatile通过保证变量访问不从寄存器缓存读取,强制每次访问内存,主要应用于多线程共享变量、中断服务程序和硬件寄存器访问三大场景。文章详细分析了volatile的内存访问机制,通过代码示例展示了正确用法,并强调其仅保证可见性而不提供原子性。最佳实践建议在硬件寄存器、中断变量等必要场景使用,避免滥用。该关键字在嵌入式开发中尤为重要,是处理编译器优化的有效工具。
一个平凡而乐于分享的小比特
2026-05-18 10:32:02
RBS扩展开发指南:如何为自定义C扩展编写类型签名
RBS作为Ruby的类型签名语言,为Ruby代码提供了静态类型检查能力。当开发自定义C扩展时,编写准确的RBS类型签名能显著提升代码的可维护性和可靠性。本文将带你快速掌握为C扩展编写RBS类型签名的核心方法和最佳实践。## 为什么需要为C扩展编写RBS类型签名?C扩展是Ruby生态中提升性能的重要方式,但由于其底层实现特性,静态类型检查工具难以自动推断其类型信息。通过手动编写RBS类型签名
殷巧或
2026-05-18 10:31:52
【C语言篇】零基础也能手搓出扫雷游戏(最后附有完整代码)3
但是当我们用9*9的棋盘扫雷的时候,如果我们选择了排查边边的雷(0表示不是雷,1表示是雷)(如下a图所示),要统计的3*3的正方形,总会有格子是不属于9*9的棋盘的,这些我们如果统计进来,就会出问题(那些越界的电脑会错误的给他们安上雷或不安上雷,统计的雷就不是我们原本棋盘里面雷的个数)。我们可以用坐标来表示,在布置棋盘的时候,我们可以在每一行和每一列的开始布置上数字,如a和b图所示。初始化用的是字符 set, 是因为我们要初始化两个数组,布置雷的棋盘初始化全部是字符'0',展示的棋盘初始化全是 '*' .
程序攻城师
2026-05-18 10:31:42
命令模式详解
命令模式(Command Pattern)摘要 命令模式是一种行为设计模式,它将请求封装为对象,实现调用者与接收者的解耦。核心思想是将"做什么"和"谁去做"分离,命令对象既知道执行什么动作,又包含撤销逻辑。该模式包含五大角色:命令接口(Command)、具体命令(ConcreteCommand)、调用者(Invoker)、接收者(Receiver)和客户端(Client)。 主要优点包括彻底解耦调用者和接收者、支持撤销/重做/排队操作、符合开闭原则等;缺点是可能导致类爆炸和初期调试成本较高。典型应用场景包括
2503_90237760
2026-05-18 10:31:32
C++入门STL容器Vector使用基础,深挖 Vector替代 C 语言繁琐容器的利器
class AApublic::_a1(a1), _a2(a2)//自定义类型的增删查改AA aa1;while (it1!//也可以是:cout << (*it)._a1 << "-" << (*it)._a2 << " ";//注意.的优先级比*高,需要括号it1++;while (it2!it2++;
浪浪山小妖怪C
2026-05-18 10:31:22
【C/C++刷题集】栈、stack、队列、queue核心精讲
本文摘要: 本文介绍了栈和队列的基本操作及其应用。在栈部分,通过模板代码展示了栈的基本操作(push/pop/query等),并提供了有效的括号匹配、验证栈序列、后缀表达式计算等经典例题的解法。队列部分同样给出模板代码,并讲解了机器翻译和海港问题两种应用场景,其中海港问题采用滑动窗口和队列结合的方式高效统计不同国籍人数。文章通过代码示例和详细注释,清晰地展示了栈和队列在不同场景下的使用技巧和实现方法,适合算法初学者学习这两种基础数据结构。
小年糕是糕手
2026-05-18 10:31:12
金仓 KingbaseES Pro*C 迁移指南:从 Oracle 平滑迁移
摘要:金仓数据库KingbaseES推出Oracle兼容版ProC运行组件,支持企业将Oracle ProC程序低成本迁移至国产数据库。该方案保留Oracle预编译工具proc,仅替换运行库实现语法兼容,支持基础SQL、动态SQL、PL/SQL等核心功能。迁移流程包括环境评估、库文件部署、环境变量配置和编译脚本调整,无需大规模代码改写。测试表明常规业务代码基本无需修改即可运行,有效降低金融、政务等行业的数据库国产化改造成本。
云边有个稻草人
2026-05-18 10:31:02
【C/C++刷题集】顺序表、vector、链表、list核心精讲
本文总结了常见链表与数组操作问题的C++实现方法,包括查找、插入、删除等基本操作。主要内容涵盖: 查找学号优化方案,避免O(n)查找导致超时 寄包柜问题的空间优化,使用动态数组解决大内存需求 双指针法解决移动零和颜色分类问题 合并有序数组的两种实现方式(辅助数组和原地合并) 单向链表和队列安排的高效数组模拟方法 约瑟夫问题的循环链表解决方案 文章重点介绍了各种数据结构的实际应用场景和性能优化技巧,特别是针对算法竞赛中常见的时间/空间限制问题,提供了详细的代码示例和复杂度分析。
小年糕是糕手
2026-05-18 10:30:52
Qwen3-VL LoRA 微调后的量化部署实录:方案对比与几个真实踩坑(vLLM + GPTQ W4A16)
之前用 LoRA 微调了 Qwen3-VL-8B,做工地场景的图像理解与安全风险分析。微调完了要部署,目标是 vLLM 的 OpenAI 兼容 API server。把主流方案都过了一遍,最后落在 GPTQ W4A16 + LLM Compressor 上。中间踩了几个不算明显的坑,写下来给后面要做同样事情的人省点时间。
项羽欧大哥
2026-05-18 10:30:42
【MySQL 进阶系列】C/C++ 如何通过客户端库访问 MySQL?从连接原理到 API 调用流程详解(附完整demo代码)
想知道C/C++如何访问MySQL?看这一篇文章就够了!万字硬核详解
努力努力再努力wz
2026-05-18 10:30:32
yaki-C语言:从概念基础到内存解析---数组(array)完全指南
可以说,数组的大小在编译时必须确定(变长数组除外),因此不适合需要动态扩容的场景。另外,局部数组(定义在函数内部)通常分配在栈上,如果占用空间过大会导致栈溢出;存储大量数据时建议使用全局/静态数组或动态内存分配。学会了数组,我们就可以在程序运行的过程中存储我们需要的数据来进行处理,可以应对更加复杂的需求,当然也需要注意到数组的有界性和连续性,以免出现越界访问的情况。
yaki_ya
2026-05-18 10:30:23
阅读更多
微信小程序
QQ小程序
推荐作者
惊觉
关注:12,粉丝15
天明
关注:5,粉丝3
洛天零
关注:0,粉丝3
超级
关注:7,粉丝4
橘中自有橘中手
关注:0,粉丝3
丸子
关注:0,粉丝2
查看全部