<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bitjs的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/bitjs</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; bitjs]]></copyright><item><title><![CDATA[Linux——git和gdb]]></title><link>https://blog.csdn.net/bitjs/article/details/157685145</link><guid>https://blog.csdn.net/bitjs/article/details/157685145</guid><author>bitjs</author><pubDate>Tue, 03 Feb 2026 14:09:25 +0800</pubDate><description><![CDATA[Git与GDB使用摘要 Git版本管理： Git是分布式版本控制系统，通过git clone克隆仓库，git add添加文件，git commit提交更改，git push推送至远程仓库。支持历史版本回溯，解决类似学生多次修改报告的需求场景。 GDB调试： Linux下使用gcc -g生成debug版本程序，通过gdb进行调试： l查看代码 b设置断点 r运行程序 n/s逐过程/语句执行 p/display查看变量 until/finish控制执行流程 c继续至下一断点 debug版本包含调试信息，可通过r]]></description><category></category></item><item><title><![CDATA[Linux——\r,\n和缓冲区]]></title><link>https://blog.csdn.net/bitjs/article/details/157466970</link><guid>https://blog.csdn.net/bitjs/article/details/157466970</guid><author>bitjs</author><pubDate>Mon, 02 Feb 2026 17:19:44 +0800</pubDate><description><![CDATA[摘要：C语言中，字符\r和\n在输出时的行为差异主要与缓冲区刷新策略有关。\n会触发行缓冲立即刷新，而\r需要手动刷新。通过实验发现，使用\r配合刷新函数可实现单行倒计时效果。文章还演示了如何利用这些特性实现进度条功能，包括单行刷新、百分比显示和颜色设置等优化技巧。关键点在于理解缓冲机制和正确使用刷新函数，这解释了为什么单纯使用\r无法显示内容而\n可以的原因。]]></description><category></category></item><item><title><![CDATA[Linux——自动化工具]]></title><link>https://blog.csdn.net/bitjs/article/details/157430771</link><guid>https://blog.csdn.net/bitjs/article/details/157430771</guid><author>bitjs</author><pubDate>Tue, 27 Jan 2026 15:36:16 +0800</pubDate><description><![CDATA[本文介绍了Makefile的基本使用方法和规则。Makefile是一个围绕依赖关系和依赖方法构建的自动化编译工具。通过示例展示了如何编写简单的Makefile来编译test.c生成可执行文件test，并添加clean功能。重点解释了依赖关系（目标文件与依赖文件）和依赖方法（如何生成目标文件）的概念，通过生活化比喻帮助理解。还说明了Makefile默认执行第一个目标，以及.PHONY伪目标的作用，它会强制命令总是执行。最后提到Makefile会根据文件修改时间判断是否需要重新编译，避免重复编译]]></description><category></category></item><item><title><![CDATA[Linux——动态库和静态库]]></title><link>https://blog.csdn.net/bitjs/article/details/157178503</link><guid>https://blog.csdn.net/bitjs/article/details/157178503</guid><author>bitjs</author><pubDate>Tue, 20 Jan 2026 16:28:46 +0800</pubDate><description><![CDATA[库本质上也是文件，而且库分为两种1、静态库libxxxxx.a2、动态库这里的库的标准就是前缀libxxxx后缀.a，识别的时候要去掉前缀和后缀，剩下的中间就是库的名字所以这个库就是c-2.17的库。]]></description><category></category></item><item><title><![CDATA[Linux——编译器-gcc/g++]]></title><link>https://blog.csdn.net/bitjs/article/details/157176527</link><guid>https://blog.csdn.net/bitjs/article/details/157176527</guid><author>bitjs</author><pubDate>Tue, 20 Jan 2026 15:30:08 +0800</pubDate><description><![CDATA[摘要：本文介绍了gcc/g++编译器的工作流程，重点讲解了从源代码到可执行文件的完整编译过程。首先通过-E选项进行预处理（头文件展开、宏替换等），生成.i文件；接着用-S选项编译为汇编代码；然后使用-c选项汇编为目标二进制文件；最后通过链接生成可执行程序。文章还介绍了-o选项用于指定输出文件名，以及ldd命令查看程序依赖库。整个过程展示了Linux系统通过预装头文件和库文件支持C/C++编译的环境基础。]]></description><category></category></item><item><title><![CDATA[Linux——yum和vim]]></title><link>https://blog.csdn.net/bitjs/article/details/157170446</link><guid>https://blog.csdn.net/bitjs/article/details/157170446</guid><author>bitjs</author><pubDate>Tue, 20 Jan 2026 11:24:00 +0800</pubDate><description><![CDATA[本文介绍了Linux系统中yum软件包管理器和vim编辑器的使用。yum作为Linux的软件下载工具，可通过yum install/remove命令安装卸载软件，并支持更换yum源配置。vim是一款多模式编辑器，详细讲解了命令模式、插入模式和底行模式的切换方法，以及复制(yy/p)、撤销(u)、移动(hjkl)等常用操作。文章还提供了vim配置方案，建议使用自动化配置方式。掌握这些工具能有效提升Linux环境下的开发效率，特别适合需要进行代码编写和软件管理的开发者学习使用。]]></description><category></category></item><item><title><![CDATA[Linux——权限]]></title><link>https://blog.csdn.net/bitjs/article/details/157136183</link><guid>https://blog.csdn.net/bitjs/article/details/157136183</guid><author>bitjs</author><pubDate>Mon, 19 Jan 2026 15:55:50 +0800</pubDate><description><![CDATA[意见事情能否运行被谁“做”权限 = 人 + 事物属性。]]></description><category></category></item><item><title><![CDATA[Linux——指令（下）]]></title><link>https://blog.csdn.net/bitjs/article/details/157134098</link><guid>https://blog.csdn.net/bitjs/article/details/157134098</guid><author>bitjs</author><pubDate>Mon, 19 Jan 2026 14:51:54 +0800</pubDate><description><![CDATA[本文介绍了Linux常用命令及其功能：sort按ASCII码排序文本（-r降序）；uniq文本去重；find按文件名查找；which/whereis搜索指令路径；alias设置命令别名；grep文本过滤（-v反向）；top任务管理器；zip/unzip压缩解压文件；tar打包/解包文件；bc计算器；uname查看系统信息；快捷键Ctrl+d退出、Ctrl+r搜索历史；history查看命令记录；shutdown关机/重启（-h立即关机，-r重启，-t延时）。这些命令涵盖了文件处理、系统管理和常用工具操作。]]></description><category></category></item><item><title><![CDATA[Linux——指令（上）]]></title><link>https://blog.csdn.net/bitjs/article/details/157025460</link><guid>https://blog.csdn.net/bitjs/article/details/157025460</guid><author>bitjs</author><pubDate>Fri, 16 Jan 2026 15:32:08 +0800</pubDate><description><![CDATA[本文介绍了Linux系统中常用的文件操作和文本处理命令。主要包括：1) echo命令的两种输出重定向方式（覆盖写入&gt;和追加写入&gt;&gt;）；2) wc、more、less、head、tail等文本查看命令；3) 管道符|实现命令间数据传递；4) date命令显示时间及时间戳转换；5) cal命令查看日历。文章还解释了Linux&quot;一切皆文件&quot;的设计理念，将显示器、键盘等设备也视为特殊文件。这些命令组合使用可以高效完成文件操作、文本处理和时间查看等常见任务。]]></description><category></category></item><item><title><![CDATA[Linux——初始Linux系统]]></title><link>https://blog.csdn.net/bitjs/article/details/156946331</link><guid>https://blog.csdn.net/bitjs/article/details/156946331</guid><author>bitjs</author><pubDate>Wed, 14 Jan 2026 17:18:31 +0800</pubDate><description><![CDATA[什么是操作系统，为什么要有操作系统？电脑开机的本质就是加载操作系统，硬件装在计算机中，驱动没有安装，硬件就无法使用操作系统存在的意义是什么？操作系统：是一款进行软硬件管理的软件操作系统对软件进项合理的管理（手段），以达到对上层用户提供良好的，稳定的安全的运行环境的目的！（手段）]]></description><category></category></item><item><title><![CDATA[C++——模板]]></title><link>https://blog.csdn.net/bitjs/article/details/140550210</link><guid>https://blog.csdn.net/bitjs/article/details/140550210</guid><author>bitjs</author><pubDate>Thu, 18 Sep 2025 09:50:34 +0800</pubDate><description><![CDATA[摘要：C++模板包括函数模板和类模板，通过template关键字定义，可减少代码重复。函数模板让编译器自动生成不同类型参数的函数，但需注意实例化歧义问题，可通过强制转换或显式实例化解。类模板能存储多种数据类型，但必须显式实例化。当模板与普通函数同名时，优先调用普通函数。模板将编程工作量转移给编译器，提高代码复用性。]]></description><category></category></item><item><title><![CDATA[MySQL——表的操作]]></title><link>https://blog.csdn.net/bitjs/article/details/151816900</link><guid>https://blog.csdn.net/bitjs/article/details/151816900</guid><author>bitjs</author><pubDate>Thu, 18 Sep 2025 09:49:46 +0800</pubDate><description><![CDATA[本文介绍了MySQL表的创建、修改和删除操作。创建表使用CREATE TABLE语法，可指定字段名、类型、字符集和存储引擎等属性。修改表包括添加字段(ALTER TABLE ADD)、修改字段类型(ALTER TABLE MODIFY)、删除字段(ALTER TABLE DROP)、重命名表(ALTER TABLE RENAME)和修改列名(ALTER TABLE CHANGE)等操作。删除表使用DROP TABLE语句。文章通过users表示例演示了这些操作的语法和使用方法，包括创建表后添加记录、修改表结]]></description><category></category></item><item><title><![CDATA[MySQL——库的操作]]></title><link>https://blog.csdn.net/bitjs/article/details/151682130</link><guid>https://blog.csdn.net/bitjs/article/details/151682130</guid><author>bitjs</author><pubDate>Sun, 14 Sep 2025 15:53:50 +0800</pubDate><description><![CDATA[本文介绍了MySQL数据库的创建、字符集设置、校验规则以及数据库管理等操作。主要内容包括：1.创建数据库语法及字符集/校验规则设置；2.字符集的概念及常见类型（如UTF-8、GBK等）；3.校验规则的作用及常见类型（区分大小写、重音等）；4.数据库的修改、删除、备份与恢复操作；5.数据表备份和连接状态查看。重点说明了字符集和校验规则对数据存储和查询的影响，并提供了实际操作的SQL示例。]]></description><category></category></item><item><title><![CDATA[MySQL——数据库基础]]></title><link>https://blog.csdn.net/bitjs/article/details/151652578</link><guid>https://blog.csdn.net/bitjs/article/details/151652578</guid><author>bitjs</author><pubDate>Sat, 13 Sep 2025 17:21:49 +0800</pubDate><description><![CDATA[本文介绍了数据库的基本概念、主流数据库类型及MySQL的使用方法。首先解释了文件存储数据的局限性，引出了数据库的必要性。随后列举了SQL Sever、Oracle、MySQL等主流数据库特点。重点讲解了MySQL的连接方式、服务器-数据库-表的关系结构，以及创建库表、插入查询数据等基本操作指令。文章还分析了MySQL的三层架构（连接池、SQL处理层、存储引擎层），说明了SQL语言的分类（DDL、DML、DCL），并介绍了多种存储引擎的特点及其插件式特性。通过具体示例演示了数据库操作流程，帮助读者理解数据库的]]></description><category></category></item><item><title><![CDATA[再探指针与结构体]]></title><link>https://blog.csdn.net/bitjs/article/details/149808334</link><guid>https://blog.csdn.net/bitjs/article/details/149808334</guid><author>bitjs</author><pubDate>Thu, 31 Jul 2025 16:22:27 +0800</pubDate><description><![CDATA[本文介绍了指针和结构体的核心概念。指针是存储内存地址的变量，其类型决定了操作权限（如int指针操作4字节）。指针运算包括加减整数（根据类型偏移）和指针相减（计算元素个数）。野指针（未初始化、越界或指向已释放空间）需通过初始化、边界检查和置NULL来规避。指针与数组关系密切，存在多级指针（如二级指针int**）。结构体是不同类型成员的集合，支持嵌套、初始化和成员访问（使用.或-&gt;操作符）。函数传参时，结构体传址比传值更高效。文章还涉及指针模拟strlen、结构体修改等实用技巧。]]></description><category></category></item><item><title><![CDATA[CMake保姆级教程]]></title><link>https://blog.csdn.net/bitjs/article/details/149598894</link><guid>https://blog.csdn.net/bitjs/article/details/149598894</guid><author>bitjs</author><pubDate>Fri, 25 Jul 2025 13:42:57 +0800</pubDate><description><![CDATA[CMake是一个跨平台的项目构建工具，通过编写CMakeLists.txt文件替代复杂的Makefile，简化了构建流程。它支持自动生成适用于不同平台的构建文件，提高了跨平台开发效率。文章介绍了CMake的基本使用，包括环境准备、CMakeLists编写、变量定义、C++标准设置、输出路径指定等。重点讲解了如何制作和使用静态库/动态库，包括库文件生成、路径设置、头文件包含以及链接方式（link_libraries和target_link_libraries）。通过CMake可以高效管理项目构建过程，特别适合]]></description><category></category></item><item><title><![CDATA[操作符与表达式]]></title><link>https://blog.csdn.net/bitjs/article/details/149576587</link><guid>https://blog.csdn.net/bitjs/article/details/149576587</guid><author>bitjs</author><pubDate>Thu, 24 Jul 2025 09:02:26 +0800</pubDate><description><![CDATA[本文详细介绍了C语言中的各种操作符及其特性。主要内容包括：1)算术操作符的类型转换规则；2)移位操作符的原码/反码/补码表示及移位规则；3)位操作符（与、或、异或）的应用，包括利用异或实现变量交换；4)单目操作符（逻辑反、取地址、解引用、按位取反等）的使用；5)sizeof运算符的注意事项；6)关系操作符和逻辑操作符的求值顺序；7)三目操作符和逗号表达式；8)下标引用和结构成员访问；9)整型提升和算术转换规则；10)操作符的优先级、结合性和求值顺序。文章通过大量代码示例，深入解析了操作符在底层运算中的表现和]]></description><category></category></item><item><title><![CDATA[数组——初识数据结构]]></title><link>https://blog.csdn.net/bitjs/article/details/149539299</link><guid>https://blog.csdn.net/bitjs/article/details/149539299</guid><author>bitjs</author><pubDate>Tue, 22 Jul 2025 16:39:33 +0800</pubDate><description><![CDATA[本文介绍了C语言中一维和二维数组的基本概念和使用方法。主要内容包括：数组的创建与初始化方式（包括变长数组和不完全初始化），数组元素访问与内存存储（连续地址空间），数组越界问题，以及冒泡排序算法的实现。特别强调了数组名在大多数情况下代表首元素地址，但在sizeof和&amp;操作时例外。文章还通过地址打印实验验证了数组元素在内存中的连续存储特性，并指出二维数组可以视为连续的一维数组存储。最后通过示例代码演示了正确传递数组大小参数进行排序的方法。]]></description><category></category></item><item><title><![CDATA[递归——最烧脑的一集]]></title><link>https://blog.csdn.net/bitjs/article/details/149537950</link><guid>https://blog.csdn.net/bitjs/article/details/149537950</guid><author>bitjs</author><pubDate>Tue, 22 Jul 2025 15:37:17 +0800</pubDate><description><![CDATA[文章摘要：递归是程序调用自身的编程技巧，通过将复杂问题分解为相似小问题来简化计算。关键要素包括：1.必须有限制条件；2.每次递归更接近终止条件。示例展示了按位打印数字的递归过程（递推和回归两个阶段），并指出无限递归会导致栈溢出。此外，文章还提到递归应用的局限性，如斐波那契数列计算中可能出现的效率问题，建议对大数计算采用迭代替代递归。]]></description><category></category></item><item><title><![CDATA[函数——C语言的重要部分]]></title><link>https://blog.csdn.net/bitjs/article/details/149532470</link><guid>https://blog.csdn.net/bitjs/article/details/149532470</guid><author>bitjs</author><pubDate>Tue, 22 Jul 2025 15:20:05 +0800</pubDate><description><![CDATA[本文系统介绍了C语言中函数的概念与应用。首先阐述了函数作为子程序的定义和特性，包括输入参数、返回值及封装性。重点讲解了库函数的作用和使用方法，通过strcpy、memset等实例演示了字符串操作函数的具体应用。详细区分了传值调用和传址调用的区别，并以交换变量值为例说明参数传递机制。文章还包含了素数判断、闰年计算、二分查找等实用函数练习，并介绍了函数声明、嵌套调用、链式访问等进阶内容。最后以商业代码开发为例，说明了通过静态库(.lib)和头文件(.h)实现代码封装和分发的完整流程，强调函数模块化设计在软件开发]]></description><category></category></item></channel></rss>