![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 59
不停感叹的老林_<C 语言编程核心突破>
大龄转行待业程序员, <C 语言编程核心突破> 助你迈入C的门槛
展开
-
2024-06-21 Cmake中使用C++23标准模块的设置
要解决问题:cmake对modules的支持已经有了, 但是, 没有深入摸索, 估计你还是不会用.想到的思路: 疯狂试验.其它的补充: 为什么不向xmake学学, 非要搞那么晦涩.我真的挺烦编写Cmake的, 谁喜欢这玩意, 告诉我一下心法.原创 2024-06-22 00:08:26 · 327 阅读 · 0 评论 -
2024-05-30 vscode python不能调试
要解决问题: from pyexpat import * ImportError: DLL load failed while importing pyexpat: 找不到指定的程序。想到的思路: 顺着pyexpat找原因.其它的补充: 依赖地狱.讨厌的依赖地狱.原创 2024-05-30 10:00:45 · 434 阅读 · 0 评论 -
2024-05-23 vscode + clang + clangd 解锁 modules
要解决问题: 昨天解锁VS使用modules, 但是不完美, 没有代码提示和补全了, 今天用解锁modules, 同时还有代码补全及提示.想到的思路: 误打误撞, 发现clang18也支持modules, 配合vscode 及 clangd还可以有代码提示和补全.其它的补充: 原来我以为没有头文件就没有代码补全, 看来我想多了, 这不是问题, 可以解决.离c++20标准已经过去4年了, 终于实现了modules的功能, 且解决了代码提示和补全的后顾之忧, 可以愉快的编程了.原创 2024-05-23 08:40:35 · 794 阅读 · 0 评论 -
2024-05-22 VS2022使用modules
要解决问题: 使用VS2022开启modules.想到的思路: 跟着官方文档整.其它的补充: 挺麻烦, 完成后很好玩.对于模块的支持, VS算是比较靠前了, 然而, 还是有坑, 坑要一个一个的踩.我只能帮你到这了, 剩下的路, 自己慢慢踩吧.原创 2024-05-22 14:37:34 · 1100 阅读 · 0 评论 -
2024-03-18 AI辅助编程, 如果还不知道CodeGeeX, 你就亏了
要解决问题: 世界上最大的问题是穷的问题, 世界上第二大的问题是墙的问题, 而国内编程人员都知道很好用, 但是面临收费和网络双重夹击, 如何才能愉快的使用智能辅助编程呢.想到的思路: 找国内平替, 比如智谱CodeGeeX其它的补充: 安装简单, 注册个人使用免费, 你可以拥有.对于还在学习中的语言, 不要用AI辅助, 因为你没有判断对错的能力, 对于已经学会的语言, 请大胆使用AI辅助, 毕竟如果它敢骗你, 你能看出来.原创 2024-03-19 11:31:01 · 628 阅读 · 2 评论 -
2024-02-21 算法: 测试链表是否有环
要解决问题: 一道简单的算法题, 测试链表是否含有环.想到的思路: 哈希表, 将链表指针强制转换为整型, 利用求余法建立哈希函数. 太复杂, 内存效率不高, 经题解发现可用双指针, 即快慢指针法.其它的补充: 简单算法题, 未看题解没做出来, 脑袋跟不上了.只要有思路, 其实很简单, 没有思路, 则比较难.原创 2024-02-21 23:09:02 · 699 阅读 · 1 评论 -
2024-02-04 混用 C 与 C++ 的 calloc 和 new 导致的问题
要解决问题: 同样的代码, 含有的结构, 在gcc环境通过calloc可以赋值, 但是在VS下不行想到的思路:不是平凡类, 按道理不能通过calloc初始化, 会产生问题, 但神奇的gcc却貌似可以正常运行.其它的补充: 混用C和C++真的不是一个好的习惯, 尤其涉及内存分配问题.混用C和C++原创 2024-02-05 21:54:07 · 491 阅读 · 0 评论 -
2024-01-11 部署Stable Diffusion遇挫记
要解决问题: 由于近期的努力, 已经实现语音转文字模型, 通用chat迷你大模型的本地部署与使用自由, 貌似还缺了一个图像, 别无选择想到的思路:, 既然已经有人搭了台子, 咱们唱戏就完了.其它的补充: 这是我部署AI模型最不顺利的一次, 因为笑脸被墙了, 导致很多问题.愉快的玩耍是以足够的硬件为基础的, 目前没有类似llama.cpp的穷人解决方案, 至少我没看到, 知道的可以告知一下.点击 快速C语言入门。原创 2024-01-11 23:51:28 · 1368 阅读 · 0 评论 -
2024-01-04 用llama.cpp部署本地llama2-7b大模型
要解决问题: 使用一个准工业级大模型, 进行部署, 测试, 了解基本使用方法.想到的思路:llama.cpp, 不必依赖显卡硬件平台. 目前最亲民的大模型基本就是llama2了, 并且开源配套的部署方案已经比较成熟了.其它的补充: 干就行了.现在AI是如火如荼, 傻子都知道这是风口, 但不用多少智商, 也应该知道, 自己烧大模型, 纯属扯淡, 还是让一线公司开源, 咱们跟着玩玩吧, 如果对这方面足够了解, 可以试试用自己的数据进行微调, 但这个话题, 本文作者并不会, 就不瞎唠叨了.原创 2024-01-04 21:29:36 · 2943 阅读 · 9 评论 -
2023-12-29 低配大模型gpt-2本地部署
要解决问题: 想本地部署个大模型, 发现, 能比较正常下载的只有gpt-2了, 出于某种未可说原因,meta的llama不能下载, 其实主要是我不想登梯子, 太贵.想到的思路: 通过ggml.cpp, 但这回比较无奈,msys2没得收录, 能不能上, 能上就下载源码进行部署, 又要用讨厌的CMAKE了, 不会用的赶紧学习, 如果碰到错误, 个人基本就没辙了, 换平台吧, 一般Linux都行,Windows看命.其它的补充: 如果你有梯子, 可以直接在msys2上安装llama.cpp, 使用。原创 2023-12-29 16:11:19 · 676 阅读 · 0 评论 -
2023-12-27 语音转文字的whisper应用部署
要解决问题: 需要一款开源的语音转文字应用, 用于视频自动转换字幕.想到的思路:openai的whisper以及根据这个模型开发的C++应用.其它的补充: 最好在linux下部署,Windows下困难太多.请开始你的字幕自动加载吧.点击 快速C语言入门。原创 2023-12-27 16:17:19 · 2409 阅读 · 1 评论 -
2023-12-18 C语言实现一个最简陋的B-Tree
要解决问题: 实现一个最简陋的B-Tree, 研究B-Tree的性质. 对于B树, 我是心向往之, 因为他是数据库的基石, 描述语言好像很容易理解, 但不造个轮子就不能彻底弄明白, 于是, 造个轮子.想到的思路: 根据AI给的代码架子进行修改, 现在AI是个好东西, 虽说给的代码不一定靠谱, 但是debug一下, 还能深入了解, 总之是很有用.原创 2023-12-18 19:55:57 · 911 阅读 · 0 评论 -
2023-11-30 通过中缀表达式转换后缀表达式, 用C语言完成一个简单的计算器
要解决问题: 在练习用Qt完成一个简单的计算器时, 需要将一个文本计算式转换为C语言可使用的模式, 即后缀表达式, 规则还是挺繁复的.想到的思路: 查文档, 了解中缀表达式转换为后缀表达式.其它的补充: 需要用到栈, 这个基本功一定要扎实.用C语言对字符串算式做语法分析并得出计算结果, 是很多教材的标准示例, 但并不简单, 属于数据结构和算法的一个类型, 考验栈结构和操作函数, 中缀转后缀算法, 后缀计算算法等, 慢慢体会.原创 2023-11-30 21:35:24 · 135 阅读 · 0 评论 -
2023-11-29 Linux环境创建命名管道小实验
要解决问题:Linux环境用mkfifo()创建个管道, 但是被阻塞, 发现是管道虽然建立了, 但是没有进程打开它, 以至于阻塞.想到的思路: 开始时是用fork()使用子进程创建管道, 但依然阻塞, 后发现是没有进程打开管道, 用fopen()打开它即可.其它的补充: 问题地址:Linux操作系统中的,管道通信问题在Linux用mkfifo()创建命名管道, 实际在文件管理器下看, 是创建一个文件, 然后可以不同进程进行调用, 传递信息, 很有意思.原创 2023-11-29 21:00:17 · 123 阅读 · 0 评论 -
2023-11-17 VsCode使用makefile进行多文件编译
要解决问题: C或C++可以多文件编译, 意味着需要进行代码组织, 为了方便多文件编译, gnu开发了make工具, 但问题是这简直又是一种编程语言, 为了解决一个问题, 又产生另一个问题. 在一个问题回答中, 我了解了作为新手的我们, 对make是如此困惑.想到的思路: 从一个最简单的多文件编译, 简述makefile的编写, 组织C文件.其它的补充: 需要更系统的学习, 可以查看陈浩巨佬的相关文章.原创 2023-11-17 12:42:17 · 4278 阅读 · 0 评论 -
2023-11-07 C语言链接库编译命令
要解决问题:一般没有给新手的链接库编译命令学习资料, 然而, 不解决这个问题, 调用库就能折腾到劝退,我近日回答一个问题, 很简单, 调用一个库解决点问题, 死活就是调不通, 然后放弃.哎, 也不知道是教育体系问题还是其它问题, 总之很别扭, 于是想写篇文章简单说一下.想到的思路:C或C++的库系统可以说一言难尽,是劝退的主要原因,我开发了一套课程,就是为避免新手因为这个放弃,但CSDN流量叫个惨淡,佛渡有缘人吧,没辙.其它的补充:学 C/C++ 尽早解决链接库文件编译, 并不难.原创 2023-11-08 20:25:02 · 122 阅读 · 0 评论 -
2023-11-03 C++ 类型擦除与状态保留
要解决问题:在C++中, 类型决定着对象的数据存储和解释, 以及方法.通过继承和虚函数, 可以实现多态.本文写一条邪路, 试图不用virtual修饰析构函数, 但在delete基类指针时, 调用子类的析构函数.想到的思路:我能想到的唯一思路, 是通过模板实现泛型, 通过lambda或函数指针抹除类型信息, 保留类型状态.其它的补充:本文完全是邪路子, 不要学, 只是作为C++灵活性的某种探讨, 虚函数才是正路.原创 2023-11-03 16:23:55 · 106 阅读 · 0 评论 -
2023-10-26 用C语言实现一个大整数加法
要解决问题: 实现大整数加法想到的思路: 用字符代替数字, 逐个计算, 过10进位.其它的补充: 同样思路可以解决减法, 乘法, 但除法没有想到如何解决.用C语言实现大整数加法, 就是将数学的基本运算翻译为程序, 可能实现的效率不一定很高, 相比较整型原生的计算, 但作为一个学习材料还是可以的.原创 2023-10-26 20:59:27 · 246 阅读 · 0 评论 -
2023-10-19 指针与指针的指针,我就不信你脑壳不疼
C实现一个链表,为什么有时候传入指针,有时候传入指针的指针,究竟有什么区别?今天就简单说说,让你头疼的指针套指针问题。以上就是在C语言中, 我们运用二级指针作为形参, 实现链表功能的一个简单阐述, 对于C语言, 指针是永远绕不开的话题, 把它玩儿明白, 你就入门了.点击 快速C语言入门。原创 2023-10-21 19:34:16 · 92 阅读 · 0 评论 -
2023-10-16 itoa函数的局限以及实现
把一个数用某种进制打印, 是一个很有用的功能,值得庆幸的是, C语言有这么一个函数itoa(), 它可以把一个数转换为2至36进制的字符串,但不那么幸运的是, 这个函数只是存在于某些编译器中, 比如Windows下的clang, 但Linux下, 则没有这个函数.不过这也不是什么问题, 既然选择用C语言, 造轮子就是程序员的命运, 做个函数实现, 并不困难.原创 2023-10-16 14:10:25 · 193 阅读 · 0 评论 -
2023-10-03 VsCode诡异消失事件
今天打开电脑, 习惯性的打开VsCode, 收到错误消息, 该快捷方式所指向的项目Code.exe已经更改或移动, 因此该快捷方式无法正常工作. 是否删除该快捷方式.现在真是离不开这些工具了, 否则真的不会编程了, 退回win笔记本阶段, 那是真的不适应, 没有上古程序员大神那种肉眼排错, 纯脑记忆所有API的能力.愿祖国强盛, 愿天下太平, 愿所有辛勤劳动的人们获取到对得起汗水的回报, 老林在此祈祷.原创 2023-10-03 20:05:58 · 2565 阅读 · 3 评论 -
2023-09-30 关于知识付费的思考与实践
线上知识付费的起点大概始于2015或2016年,标志是逻辑思维, 吴晓波, 樊登等现象级崛起,风口大概始于2019年, 由于疫情原因, 线下大量转线上, 鱼龙混杂, 却充满机遇.总结我的经验, 可以说, 至少一半是冲动消费, 合理而被证明有效的消费, 估计不多于10%, 其余是被割韭菜.原创 2023-10-01 11:32:58 · 109 阅读 · 0 评论 -
自己的碎碎念集合
我的一些短篇内容合集原创 2023-09-08 18:52:16 · 787 阅读 · 1 评论 -
2023-09-07 C++命名空间的一些陷阱
最近看到个问题, 就是在命名空间中声明一个变量 ( int rand = 0 ), 用using namespace将这个命名空间引入 (污染) 进全局空间, 当函数调用此变量时发生错误.这是命名空间全局污染典型案例, 我们进行一些剖析有时候, 前人总结的经验不一定立刻起到作用, 比如, 绝对不要人为引入全局空间污染但当你违背以上警告, 却没有产生问题, 还貌似提高了打字效率,殊不知, 各种莫名奇妙的bug就在路上等着, 你可能害了整个团队, 让一个下游程序员莫名奇妙的追踪数百乃至数万个编译报错。原创 2023-09-07 11:24:35 · 117 阅读 · 0 评论 -
2023-09-03 深入辨析C语言字符数组与字符指针
数组与指针联系密切, 尤其对于字符串, 什么时候用 strcpy(), 什么时候用 " = ", 经常有人弄错, 同时, 经常有人用非 const 修饰的指针指向一个字符字面常量, 这些基本功还是要砸实一些.以上就是C字符数组与指针区别.原创 2023-09-03 22:17:44 · 59 阅读 · 0 评论 -
2023-08-31 float.h中的部分宏定义详解
C语言中的float并不像大多数人想象的那样, 由于计算机模拟的原因, 其本质是离散的而非连续的, 所以精度和范围是一定的, 这些都写在float.h头文件的宏中. 但通常, 我们对教材的每一个字都认识, 连起来就读不懂了, 所以, 写下此博文, 详解之.原创 2023-08-31 21:58:14 · 315 阅读 · 0 评论 -
2023-08-31 打印IEEE标准的 float 符号位, 阶码位, 尾数位
学过深入理解计算机系统的同学, 都知道float的实现方式, 按照IEEE标准, 由符号位, 阶码位, 尾数位组成, 本文给出一个代码, 打印float的符号位, 阶码位, 尾数位.以上就是今天要讲的内容,本文仅仅简单介绍了IEEE对float的实现, 利用数据结构, 将其内部真实二进制值打印出来, 方便读者研究。原创 2023-08-31 20:30:23 · 139 阅读 · 0 评论 -
2023-08-28 C语言函数一定要在.h文件中声明吗
最近碰到个好问题, C语言函数一定要在.h文件中声明吗?之所以说这是好问题, 因为它引发了一个工程问题, 如何组织函数代码文件.这是一个非常必要理解的问题, 当涉及一个软件工程, 需要编写无数的文件, 如果不理解声明与定义分离, 很容易出bug.无需考虑, 用不用头文件单独声明都是可以的.一般教材, 对于文件的组织可能一笔带过, 对于初学者, 进行单文件小练习, 完全不重要, 所以被忽视, 一旦涉及到多文件, 自己实现库供其他人调用, 则文件组织就成了必修项目.原创 2023-08-28 15:58:05 · 974 阅读 · 0 评论 -
2023-08-28 小练习_环形字符串的某子串出现次数
最近看了一个提问, 问如何计算环形字符串的某子串出现次数, 其实算法比较简单, 增加在字符串结尾增加子字符串长度减一的字符即可.上面代码较为简单, 同时还有一个小陷阱, 重复子串, 比如 “aaabaaa”, 子串是"aa", 有兴趣的同学可以琢磨一下.原创 2023-08-28 14:52:51 · 132 阅读 · 0 评论 -
2023-05-29 用 fltk gui库编写一个打字练习程序
给孩子练习键盘打字, 发现终端还是欠点意思, 研究了一下gui, 最终用 fltk库弄了一个.对于没有接触过gui的人, 发现, 编程的逻辑和终端区别很大, 很繁琐, 可能需要适应适应, 另外, 文档很重要, 示例很重要.没什么好总结的, 简单使用而已, 一般来讲是足够了.原创 2023-05-29 16:03:35 · 678 阅读 · 0 评论 -
2023-05-03 从一个字符串中输出所有整数
看到一个题目,用sscanf输出字符串中的整数, 但sscanf函数不是正则函数, 无法直接输出所有整数.思路有两个,第一, 改造字符串, 把非数字的字符置空, 用strtol函数提取.第二, 直接用正则表达式.两种方法都很简单, 第一种普通方式局限性较大,换成输出其它的就无法复用.第二种则前期比较麻烦, 好在局限性较小, 配合不同的正则表达式, 可以有不同效果.原创 2023-05-03 13:34:06 · 77 阅读 · 0 评论 -
2023-04-29 读取内容为十六进制数字的txt文件转换为二进制文件
一个有趣的题目:读取txt文件内容两两结合,存储为dat文件, 实现十分简单, 有很多有意思的回答, 但大都是python, 其实这个用C的格式化读取fscanf( ) 配合二进制写入 fwrite( ) 就能轻松解决的.对十六进制比较了解的话, 配合C的标准库, 问题比较容易解决, 但字节序很容易忽略, 容易出现问题.原创 2023-04-29 21:44:38 · 959 阅读 · 0 评论 -
2023-04-26 简述C语言调用sqlite3数据库
sqlite3是文件型数据库, 小巧, 快, 环境构建容易. 本文介绍sqlite3最基本的C语言API, 有相关需求的人可以看看.sqlite3是使用最多的数据库, 因其短小精悍, 功能不弱, 为开发者所喜爱. 使用不难, 如果会sql语句以及C语言,很容易上手.另外chitgpt现在也比较好用了, 查函数原型, 基本差不离, 这回没有出现自造函数的现象, 挺好.原创 2023-04-26 15:58:44 · 2212 阅读 · 0 评论 -
2023-03-27 C语言正则表达式库 pcre2 简述(chitGPT给出的回答和我的补充)
PCRE2(Perl Compatible Regular Expression 2)是一个支持 Perl 语法的正则表达式库。它是 PCRE(Perl Compatible Regular Expression)的升级版,提供了更多的功能和更高的性能。PCRE2 可以用于 C、C++、Java、Python、PHP 等多种编程语言中,用于处理文本匹配、搜索和替换等操作。使用 PCRE2,需要先安装库文件和头文件。然后在代码中包含头文件,调用相应的函数进行正则表达式的操作。原创 2023-03-27 16:09:02 · 2450 阅读 · 0 评论 -
2023-01-31 CSDN问答中如何防止和惩罚 “偷代码操作“
在CSDN问答, 结果被抄代码, 并且抄代码的被采纳得奖金, 你这个原创被折叠, 怎么办?本文以作者被抄袭的过程为示例, 告诉广大CSDN的答题者,如何维护自己的利益.原创 2023-01-31 23:49:07 · 412 阅读 · 0 评论 -
2023-01-18 python ctypes 引用 dll 动态连接库调用C函数
python 标准 ctypes 模块, 专门进行与 C 或 C++ 封装的 dll 动态连接库, 使用不难, 但有些坑. 想要跨语言编程的入门者, 此文可以帮你快速掌握ctypes基本用法,包括连接dll,通过函数指针设置形参和返回值,类C结构构建,函数调用, 并避免一些错误, 如中文输出, 读写内存错误.原创 2023-01-18 14:20:07 · 1022 阅读 · 0 评论 -
2023-01-12 用C++完成一个多平台可用的学生管理系统
作为计算机相关专业学生, 几乎都要完成的作业就是用C或C++编写学生成绩管理小程序. 不复杂, 但如果涉及跨平台, 会有一个无法避免的坑, 汉字编码. Windows终端用GBK, Linux用UTF8. 如果你在为跨平台的汉字输入输出苦恼,可以看看这篇文章.原创 2023-01-12 11:41:59 · 589 阅读 · 0 评论 -
2023-01-03 有关C++继承多态的一点想法
最近看了一道题目,C++实现多态的时候父类指针如何调用子类独有的数据成员, 发现有时候对面向对象, 很多小白误解很深, 答题者的回答, 会加深这种误解, 如果这种误解根深地固, 恐怕会连累很多人, 实在是看不下去, 只能写篇文章, 能解释多少就解释多少.原创 2023-01-04 11:59:35 · 244 阅读 · 0 评论 -
2022-12-11 Windows下如何用C/C++获取cpu数量和物理核数
Windows下如何用 C/C++ 获取 CPU 数量和物理核数? 对于底层硬件信息的获取, 和具体环境有直接关系, 各个系统都需根据系统实现进行操作, 也就是说, 不可移植. Windows可直接调用WMI对所有CPU参数进行检查, 对于基于Windows平台需要CPU所有详细信息的开发者, 可阅读本文, 获取如CPU物理核数, 逻辑核数, CPU数量, 二级缓存, 电压, 序号, 名称等相关信息.原创 2022-12-11 22:24:02 · 2312 阅读 · 0 评论 -
2022-07-07 线程安全的队列和栈(C++实现)
基础的STL容器,为了效率,以及更朴实的使用,没有对线程安全进行实现,大概是说如果需要线程安全,你自己加个锁就可以了,所以我们就给队列和栈加个锁吧。因为多线程每个实例都可以访问同一个容器,就难免会有读写,读好说,和平共处,写就比较麻烦,人家刚判断容器不空,我这边就删了唯一的元素,他那边再删就throw err 了。反之我这边刚判空,那边加了个元素,我这边的逻辑也就错了。后进先出,为了保证取值和抛弃值的原子性,将pop() 设计成同时进行并加锁。减少所有不必要接口。删除拷贝赋值。pop判空直接抛异常。逻辑简单原创 2022-07-07 10:38:32 · 720 阅读 · 0 评论