外观
C++
约 14278 字大约 48 分钟
2025-04-11
C Plus Plus
include
包含头文件,以便在当前文件中使用头文件中定义的代码 可以理解为合并,把头文件的内容会合并到你引入头文件的文件中
头文件
.h文件 很多系统自带的头文件,我们也可以自己新建头文件来达到与系统头文件一样的作用
引入自定义的用引号, 系统自带用<>
#include <iostream> //预处理器语句 引入标准输入输出流库的头文件,提供了 std::cout 和 std::endl 的声明。
#include <string> //引入字符串库的头文件,提供了 std::string 的声明。
/*
* C++:#include <vector> 让你用 std::vector。
* Python:import numpy 让你用 numpy.array。
* C#:using System.Collections.Generic 让你用 List<T>。
*/
// std:: 这是C++的名称空间,类似于C#的 System
//主函数 返回值为0,但是可以不需要显示返回,默认返回0
int main() {
//cout输出函数 打印到终端
// << 符号 是个重载函数,等价于std::cout.print("Hello World!").print(std::endl);
// std::endl:换行,并刷新缓冲区
std::cout << "Hello World!" << std::endl;
std::cin.get(); //类似Console.ReadLine() 等待用户按键
}- 跨文件调用 main.cpp:
#include <iostream>
//申明Log() 他会自动通过链接器去寻找这个函数
void Log(const char*);
// std:: 这是C++的名称空间,类似于C#的 System
int main() {
Log("Hello World!");
std::cin.get();
}Log.cpp
#include <iostream>
void Log(const char* message) {
std::cout << message << std::endl;
}编译、链接
本质上说 .cpp文件是一个文本类型,如何做到把他输出成一个可执行文件? 这个步骤就是编译->链接 编译:生成obj文件;可使用编译器功能将obj输出编译的代码,以及编译器可以对代码进行优化 链接:编译后的每个cpp是单独的,链接器的作用就是找到每个变量函数把他们链接起来(obj文件)组成一个应用程序
提示
如果你的cpp文件较多,且引用了同一个包 应该考虑使用预编译头文件。 否则每个引用了包的文件 都会存在一份头文件的代码 重复臃肿
预处理器语句
编译之前就处理的
- include:引入头文件
- define:替换
- if:包含或排除给定的指定代码
可以在项目的属性页中设置项目输出的类型; 配置属性 -> 常规 配置类型 链接器:打包/输出文件的设置
Ctrl+F7 单独编译一个文件 编译器会为每一个cpp文件生成一个 二进制 .obj文件,根据你输出的类型整合为一个
static 静态
不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同不同表示类型本身类型本身 直接引用,生命周期一直存在)
预编译头文件
不经常更新的东西 再作为头文件使用,否则会增加编译的时间
类型
变量的类型只是代表他咋内存中占用的大小不同,通常由编译器规定占用大小 安占用字节数的类型来排序
类型只是一种语法,设置类型只是用来处理数据的,不改变本质只是数据不同的呈现
sizeof():查看类型占用多少字节
1.bool
0 false; 1 true 除了0都是true
1.char
1个字节
2.short
2个字节
4.int
4个字节 一个字节8bit 那么就是32位; 数字有正负的区别所以一个int值就是一个符号占一位,剩下31位代表数值;8位 8个二进制位就是最大值:11111111 转为十进制;每一位代表2的幂 2
<sup>0</sup>+2<sup>1</sup>+2<sup>2</sup>+2<sup>3</sup>+2<sup>4</sup>..+2<sup>7</sup>=255,多少位就是2的多少幂,32位就是2<sup>31</sup>=2,147,483,648 有个特例,比如你不想要那一位表示±符号的,想把他的那一位用做表示数值,c++提供了一个unsigned int,无符号位的int, 他的最大值就是2<sup>32</sup>
4.long
4.float
8.double
8.long long
特别的unsigned 在表示数值的时候加上他修饰类型可以把符号位当作数值位
类型转换
reinterpret_cast()
static_cast()
dynamic_cast()
const_cast()函数
指针
程序最重要的是内存,而指针对于管理和操作内存非常重要 指针是一种存储内存地址的整数 指向内存中的一个位置
指针有类型的区分,但是类型不改变本质 只是数据不同类型的呈现。在编写代码时 指定的类型更好的规范和使用而已。
int main() {
Log("Hello World!");
int var = 8;
//定义无类型的空指针(0、NULL、nullptr)
void* ptr = 0;
ptr = &var; //获取var变量的内存地址 调试 -> 窗口 -> 内存 中可以使用指针的地址搜索
//使用指针
int* myPtr = &var;
*myPtr = 10; //使用指针时 指针的类型需要与类型一样
std::cin.get(); //等待输入
}引用
int var =8;
int& a = var; //创建var的引用, 引用类型相当于是原变量 可以看作别名类 class
- 类中的成员默认是私有
private,如果需要在外部调用需要声明为public
class Player
{
public:
int x,y;
int speed;
void Move(int xx,int yy)
{
x+=xx;
y+=yy;
}
};类成员初始化列表
Class Entity
{
private:
std::string m_Name;
int m_Score;
public:
//初始化需要按照声明的顺序写
//等价于 Entity() { m_Name="Unkonwn"; m_Score = 0;}
Entity() : m_Name("Unkonwn"), m_Score(0) {}
Entity(const std::string name, int score) : m_Name(name), m_Score(score)
{
}
}结构 struct
- 跟类的功能差不多,访问区分符默认为public
- 为了兼容性而留存的,类可以替代他
枚举
emun Level
{
Error = 0, Warning, Info
};
//也可以把枚举申明在类中作为类成员
class Entity
{
public:
enum Level
{
Error = 0, Warning, Info
};
private:
Level m_level = Info;
public:
void SetLevel(Level level)
{
m_level=level;
}
};
int main()
{
Entity entity(Level::Error); //传递枚举
}静态
- 全局唯一指向
静态变量
定义的类中更像是名称空间,实际的静态变量并不属于这个类
静态局部变量
void Testa()
{
static int i = 0;
i++;
std::cout << "i = " << i << std::endl;
}static int i=0 声明的静态局部变量只会在程序第一次调用函数时初始化一次!之后这个值一直保留在内存中,不会因函数结束而销毁。
虚函数
- 可以被子类重写的函数
- 有自己默认的实现
纯虚函数(接口)
- 的接口的接口
- 没有方法体,用于被override重写(实现)
可见性
private
- 自己或友元才能访问
protected
- 自己和子类衍生类可以访问
public
- 公开,都可以访问
为什么要有可见性?
- 无关性能
- 让代码更容易理解、维护
- 如何访问和利用代码,设计初衷之类
数组
//二维数组
int** arr2 = new int*[50];
for(int o=0,i<50,i++)
{
arr2[i] = new int[50];
}字符串
- 就是字符数组(char[]),本质上是数组
char* name = "abc";
char name[3] = {'a','b','c'};如何知道字符串完了(占用了多少内存) 他有一个截断字符
char* name = "abc"; //默认就有截断字符 00
char name[4] = {'a','b','c',0}; // 数组形式的需要自定义 否者会输出奇怪的东西静态字符串用const char*
关键字: std::str,需要引用 #include <string>
#include <iostream>
#include <string>
void PrintString(std::string string)
{
string+= " h"; //这样的传递方式 是传递的拷贝,改变值不会影响原有的值
std::cout << string << std::endl; //如果我们只是想显示,也不需要传递拷贝,因为拷贝会开辟内存 创建心的对象
}
//所以如果你只想传递只读的字符串,请使用引用传递
//const std::string& string 不会修改的引用
void PrintString(const std::string& string)
{
string+= " h"; //这样的传递方式 是传递的拷贝,改变值不会影响原有的值
std::cout << string << std::endl; //如果我们只是想显示,也不需要传递拷贝,因为拷贝会开辟内存 创建心的对象
}
int main()
{
std::string str="abcd";
str += " efg";
str.find("cd");
}字符串面量
字符串存储在内存中只读的部分
const
常量,不可修改 在函数后标记 const,代表不可修改这个类
mutable
标记可修改的,与const结合使用
class Entity
{
private:
std::string m_Name;
mutable int m_DebugCount = 0;
public:
const std::string& GetName() const
{
m_DebugCount++; //如果我们想在标记的const的函数中修改值,就在对于值上加上mutable
return m_Name;
}
};
int main()
{
const Eentity e;
e.GetName();s
}对象的创建和初始化
Class Entity
{
private:
std::string m_Name;
int m_Score;
public:
//初始化需要按照声明的顺序写
//等价于 Entity() { m_Name="Unkonwn"; m_Score = 0;}
Entity() : m_Name("Unkonwn"), m_Score(0) {}
Entity(const std::string name, int score) : m_Name(name), m_Score(score)
{
}
void GetName()
{
return m_Name;
}
}- 在栈上创建: 在c# 类中无法做到这个,可以通过struct实现
void Function()
{
Eentity e; //栈上创建
Eentity e("张三")
}//当代码运行出该块之后,就会被GC
int main()
{
Function();
}- 在堆上创建:
- 的正常类实例化类实例化 区别是c++中 在堆中创建的 对象 必须手动释放
int main()
{
Entity* e;
{
Eentity* e1 = new Entity("张三")
e = e1;
std::cont << e1=>GetName() << std::endl;
delete e; //必须手动释放
}
}- 总结
- 栈上创建更快,性能消耗更低 自动GC
- 堆上创建需要手动GC,但是控制更灵活
new
int main()
{
int a = 2;
int* b = new int[50];
Entity* e = new Entity();
delete[] b;
delete e;
}隐式构造函数
知晓即可
class Entity
{
private:
std::string m_Name;
int m_Age;
public:
Entity(std::string name):m_Name(name),m_Age(-1)
{}
Entity(int age):m_Name("Unknown"),m_Age(age)
{}
}
void PrintEntity(const Entity& entity)
{
//打印
}
int main()
{
//自己做了一次隐式转换
Entity a = "张三";
entity B = 32; //可以使用 `explicit` 禁用隐式构造函数功能
PrintEntity(22); //这个没问题可以自动隐式转换
PrintEntity("张三"); //这个会报错 因为"张三"不是std::string,实际上他是 char[]
//这两种都可以
PrintEntity(std::string("张三"));
PrintEntity(Entity("张三"));
}- 可以使用
explicit禁用隐式构造函数功能
//在构造函数前加上关键字 explicit
explicit Entity(std::string name):m_Name(name),m_Age(-1)重载运算符
#pragma region 正常的写法
Vector2 Add(const Vector2& other) const //const 表示这个方法不会修改类 只影响vector2作为结果
{
return Vector2(x + other.x, y + other.y);
}
#pragma endregion
Vector2 Add(const Vector2& other) const //const 表示这个方法不会修改类 只影响vector2作为结果
{
return operator+(other); //等价于Vector2(x + other.x, y + other.y);
}
Vector2 operator+(const Vector2& other) const
{
return Vector2(x + other.x, y + other.y);
}
//调用:
// Vector2 v1(1, 2);
// Vector2 result = v1.Add(v2);
//重载之后的写法:
// Vector2 result = v1 + v2;this
class Entity
{
public:
int x, y;
Entity(int x, int y)
{
this->x = x; // 等价这样的写法 : (*this).x = x;
this->y = y;
}
};堆栈
栈可以认为是一种数据结构,在上面堆叠存放数据。紧凑有序存储数据的内存区域,能提升程序性能
特点:
- 有规律的存放数据
- 访问即销毁(超作用域外回收)
class Entity_Stack
{
private:
int x;
public:
Entity_Stack()
{
std::cout << "entity created: " << std::endl;
}
~Entity_Stack()
{
std::cout << "entity destroyed: " << std::endl;
}
};
int main_stack()
{
{
Entity_Stack e; //栈上创建 调用构造函数 但是如何写成指针形式, Entity_Stack* e = new Entity_Stack(); 则是在堆上创建,离开作用域不会销毁
}//出作用域 自动调用析构函数
std::cin.get();
return 0;
}
//反例示范 该函数除了这个作用域内存就会被回收 调用无法拿到
int* CreateArray(int size)
{
int arr[100]; //局部变量 在栈上分配内存
return arr; //返回局部变量的地址 是错误的
}
//正确示范 该函数在堆上分配内存 需要手动释放
int* CreateArray(int size)
{
int* arr=new int[100];
return arr;
}
//---
//或者传递指针到函数中去操作
void InitArray(int* arr, int size)
{
for (int i = 0; i < size; i++)
{
arr[i] = i;
}
}可以使用栈结合析构函数做自动化的堆创建回收; 智能指针的基本概念
class Entity_Stack
{
private:
int x;
public:
Entity_Stack()
{
std::cout << "entity created: " << std::endl;
}
~Entity_Stack()
{
std::cout << "entity destroyed: " << std::endl;
}
};
class ScopePtr
{
private:
Entity_Stack* m_Ptr;
public:
ScopePtr(Entity_Stack* ptr)
:m_Ptr(ptr)
{
}
~ScopePtr()
{
delete m_Ptr; //在析构函数中释放内存
}
};
int main()
{
{
ScopePtr e = new Entity(); //隐式构造函数 相当于默认实例传递构造函数变量
}//出作用域 自动调用析构函数
std::cin.get();
return 0;
}智能指针
unique_ptr
- 不要复制,执行的是同一个内存 一个释放会影响另一个
#include <memory> #引入头文件
class Entity
{
private:
int x;
public:
Entity_Stack()
{
std::cout << "entity created: " << std::endl;
}
~Entity_Stack()
{
std::cout << "entity destroyed: " << std::endl;
}
void Print() {}
};
int main()
{
{
std::unique_prt<Entity> entity = std::make_unique<Entity>();
entity->Print(); //调用完了自动释放
}
}shared_ptr 计数指针
- 可以赋值的智能指针
- 主要使用引用计数,指针有多少个引用。如果引用为0则删除
std::shared_ptr<Entity> sharedEntity = std::make_shared<Entity>(); 就可以在其他作用域使用
weak_ptr 弱指针
- 不会增加计数的指针
- 使用场景
- 打破循环引用例如:两个对象互相持有对方的
shared_ptr,会导致引用计数永远不为零,无法释放内存。此时一方可改用weak_ptr。 - 缓存或观察者模式当你希望“观察”一个对象,但不希望因为你的存在而阻止它被回收时。
- 延迟加载或状态检查 在异步或多线程环境中,检查某个资源是否仍然有效。
- 打破循环引用例如:两个对象互相持有对方的
箭头运算符
的的的 .
还能用于获取偏移量
struct Vector3
{
float x,y,z;
};
int offset = (int)&((Vector3*)nullptr)->x; //0
int offset = (int)&((Vector3*)nullptr)->y; //4
int offset = (int)&((Vector3*)nullptr)->z; //8待补 47 48
库
静态链接(lib)
简单的理解就是引用头文件 #include <...>
- 附加到程序中,编译后可以没有外部依赖 嵌入到可执行程序中
动态库(dll)
区别总结
| 特性 | 静态链接库(Static Library) | 动态链接库(Dynamic/Shared Library) |
|---|---|---|
| 文件后缀(Linux) | .a(如 libmath.a) | .so(如 libmath.so) |
| 文件后缀(Windows) | .lib(静态) | .dll + .lib(导入库) |
| 链接时机 | 编译/链接时(build time) | 运行时(load time 或 runtime) |
| 代码是否嵌入可执行文件 | ✅ 是 | ❌ 否(独立文件) |
| 内存占用 | 每个程序私有一份副本 | 多个程序共享同一份内存(只读段) |
| 更新方式 | 必须重新编译整个程序 | 替换 .so/.dll 即可(兼容前提下) |
| 启动速度 | 快(无需加载额外库) | 略慢(需动态链接) |
| 依赖管理 | 无外部依赖(“自包含”) | 需确保目标系统有对应库 |
创建动态库
模板 (泛型)
- 在编译且调用后才会根据具体传递的类型创建函数 (可以理解为根据模板生成代码,然后编译)
//函数
template<typename T>
void Print(T Value);
//类
template<int N>
class Array
{
private:
int m_Array[N];
public:
int GetSize() const { return N;}
}
//使用
Array<5> array;
array.GetSize(); //5
//类
template<typename T, int N>
class Array
{
private:
T m_Array[N];
public:
int GetSize() const { return N;}
}
//使用
Array<int,5> array;
array.GetSize(); //5宏
定义一个语句来执行某些代码
#define WAIT std::cin.get()
int main()
{
WAIT; //就有执行std::cin.get()的效果
}std::array
一个用模板生成的扩展数组 带大小获取的函数。 本质上他还是array,只是模板中带了一个size。 无性能开销 推荐使用
函数指针
类似委托 action、func; 将函数当成参数
void HelloWorld()
{
std::cout << "Hello World" << std::endl;
}
int main()
{
auto function = HelloWorld;
//实际的函数类型void(*function)()
void(*function)() = HelloWorld;
function();//调用
}lambda
匿名函数 一般用于不二次使用的函数的定义
[](){} 实际类型:std::function<void(int)>& func,需要引用 #include <functional>
int main()
{
int a = 5;
auto lambda = [=&a=](int value) { std::cout << a << std::endl; } //传递所有外部变量到内部
auto lambda1 = [&a](int value) { std::cout << a << std::endl; } //传递指定外部变量到内部
}函数指针结合
viod ForEach(const std::vector<int>& value,void(*func)(int))
{
for(int value : values)
func(value);
}
int main()
{
std::vecotr<int> values = {1,2,3,4,5};
Foreach(values,[](int value) { std::cout << "value: " << value << std::endl; });
//输出 value: 1 换行 value: 2 ....
}std::findif
#include <algorithm>
{
std::vecotr<int> values = {1,2,3,4,5};
//通过迭代器 找到第一个大于3的值
auto it = std::findif(values.begin(),values.end(),[](int value){ return value>3;});
std::cout << *it << std::endl;
}线程
#include <thread>
void DoWork()
{
while(true)
{
std::cout << "do smthing \n";
}
}
{
std::thread worker(DoWork);
worker.join();
std::cin.get();
}计时
#include <chrono> #计时库
#include <thread>
int main()
{
using namespace std::literals::chrono_literals;
auto start = std::chrono::high_resolution_clock::now; //当前时间
std::this_thread:sleep_for(1s); //休眠一秒
auto end = std::chrono::high_resolution_clock::now;
std::chrono::duration<float> duration = end -start;
std::cout << duration.count() << "s" << std::endl;
}
//更简单的方法
struct timer
{
std::chrono::time_point<std::chrnon::steady_clicok> start,end;
std::chrono::duration<float> duration ;
Timer()
{
start = std::chrono::high_resolution_clock::now;
}
~Timer()
{
end = std::chrono::high_resolution_clock::now;
duration = end -start;
float ms = duration.count * 1000.0f;
std::cout << "耗时:" << ms << "ms" << std::endl;
}
}
void Function()
{
Timer timer;
for(int i = 0; i<100;i++)
{
//std::cout << "Hello " << std::endl;//std::endl会很慢
std::cout << "Hello \n";
}
}
int main()
{
Function();
}单例
#include <iostream>
class Singleton
{
public:
Singleton(const Singleton&) = delete;
static Singleton& Get()
{
return S_Instance;
}
private:
Singleton(){}
static Singleton s_Instance;
};
Singleton Singleton::s_Instance;简单的内存开销记录
通过重载操作符的方式
void* operator new(Size_t size)
{
std::cout << "分配:" << size << " bytes\n";
return malloc(size);
}
void operator delete(void* mermory,Size_t size)
{
std::cout << "释放" << size << " bytes\n";
}开源库推荐
C++
<span class="RichText ztext CopyrightRichText-richText css-1tkr2mx" options="[object Object]" itemprop="text"><p data-first-child="" data-pid="oohtVvYT">`推荐几十个吧,这里整理了一些高质量现代C++风格的开源仓库:`</p><ul>``<li data-pid="oBdv8Xdk">`args: `<a href="https://link.zhihu.com/?target=https%3A//github.com/Taywee/args" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/Taywee/args`<span class="invisible"></a>` - 命令行参数解析库,代码行数800左右`</li><li data-pid="pr_yFkU0">`cereal: `<a href="https://link.zhihu.com/?target=https%3A//github.com/USCiLab/cereal" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/USCiLab/cere`<span class="invisible">`al`<span class="ellipsis"></a>` - 快速、小巧、方便的二进制 JSON 序列化库,代码行数4000左右。`</li><li data-pid="65C350Z8">`SQLiteCpp:`<a href="https://link.zhihu.com/?target=https%3A//github.com/SRombauts/SQLiteCpp" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/SRombauts/SQ`<span class="invisible">`LiteCpp`<span class="ellipsis"></a>` - 简单易用的Sqlite C ++封装库,我目前项目中就是使用的这个库,很好用,代码行数2,500左右。`</li><li data-pid="YMObn4mN">`fmt: `<a href="https://link.zhihu.com/?target=https%3A//github.com/fmtlib/fmt" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/fmtlib/fmt`<span class="invisible"></a>` - 现代、安全且快速的C++20 format 库,代码行数3000左右,最近我就在看这个。`</li><li data-pid="Pap5OgQS">`spdlog:`<a href="https://link.zhihu.com/?target=https%3A//github.com/gabime/spdlog" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/gabime/spdlo`<span class="invisible">`g`<span class="ellipsis"></a>``</li><ul>``<li data-pid="OJd0pKjT">`现在最热门的C++日志库,支持多种输出格式和级别,有header only和compile source两种模式,源码还简单易学,关注我,后面我出一期spdlog的源码分析文章。`</li></ul>``<li data-pid="dOodIE2u"><b>`abseil:`<a href="https://link.zhihu.com/?target=https%3A//github.com/abseil/abseil-cpp" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/abseil/absei`<span class="invisible">`l-cpp`<span class="ellipsis"></a>``</b></li>``<ul><li data-pid="6rRzZpx-">``<b>`Google内部的C++轮子库,各种基础能力都包含,值得学习。abseil还有个官方网站:`<a href="https://link.zhihu.com/?target=https%3A//abseil.io/" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`abseil.io/`<span class="invisible"></a>``</b></li>``</ul><li data-pid="QDHRzTmk">``<b>`folly:`<a href="https://link.zhihu.com/?target=https%3A//github.com/facebook/folly" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`GitHub - facebook/folly: An open-source C++ library developed and used at Facebook.`</a></b>``</li><ul>``<li data-pid="yGfIM5-F">`Facebook内部的轮子库,线程池、内存池、异步IO、executor等,应有尽有。`</li></ul>``<li data-pid="smdgZ49a">`libzippp: `<a href="https://link.zhihu.com/?target=https%3A//github.com/ctabin/libzippp" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/ctabin/libzi`<span class="invisible">`ppp`<span class="ellipsis"></a>` - 基于zlib和libzip的跨平台封装,代码行数2000左右。`</li><li data-pid="OXgtUxue">`cista:`<a href="https://link.zhihu.com/?target=https%3A//github.com/felixguendling/cista" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/felixguendli`<span class="invisible">`ng/cista`<span class="ellipsis"></a>` - header only的序列化-反射库,代码行数1500左右。`</li><li data-pid="AGIlU5fa">`sqlite_orm: `<a href="https://link.zhihu.com/?target=https%3A//github.com/fnc12/sqlite_orm" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/fnc12/sqlite`<span class="invisible">`_orm`<span class="ellipsis"></a>` - Sqlite的C++ ORM封装,代码行数3000左右。`</li><li data-pid="BDWS_BSp">`chromium:`<a href="https://link.zhihu.com/?target=https%3A//github.com/chromium/chromium" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/chromium/chr`<span class="invisible">`omium`<span class="ellipsis"></a>``</li><li data-pid="tY_9tBQ_">`google浏览器源码仓库,包括edge等很多浏览器和应用都会基于chromium二次开发,阅读它的代码后,也改变了我的部分编程习惯。`</li><li data-pid="q6NUyREp">``<b>`fmtlib:`<a href="https://link.zhihu.com/?target=https%3A//github.com/fmtlib/fmt" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/fmtlib/fmt`<span class="invisible"></a>``</b></li>``<ul><li data-pid="j3XOmpFD">``<b>`现代化、快速的 C++ 格式化库,方便易用的API且高效,不使用C++20可以使用这个库做format。`</b></li>``</ul><li data-pid="bDqbWqWP">``<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=707448965&content_type=Answer&match_order=1&q=godot+engine&zhida_source=entity" target="_blank">`godot engine`<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z">``</path></svg>``</a>`: `<a href="https://link.zhihu.com/?target=https%3A//github.com/godotengine/godot" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/godotengine/`<span class="invisible">`godot`<span class="ellipsis"></a>``</li><ul>``<li data-pid="HymkGcGI">`看到挺多朋友这个仓库代码质量高`</li></ul>``<li data-pid="tqA14IFh">`ctpl: `<a href="https://link.zhihu.com/?target=https%3A//github.com/vit-vit/ctpl" class=" external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043"><span class="invisible">`https://`<span class="visible">`github.com/vit-vit/ctpl`<span class="invisible"></a>` - 简易的C ++线程池,代码行数看了下,约为500左右。`</li></ul>``<p data-pid="ShHC3TJO"><b>`这几个都是现代 C++ 风格的高质量开源代码仓库,值得学习和使用,个人更喜欢folly多一些,spdlog也强烈推荐。`</b></p>``<p data-pid="voZogizA">`再推荐15个小巧的C语言开源项目:`</p><ol>``<li data-pid="x6jRStdJ"><b>``<u><a href="https://link.zhihu.com/?target=https%3A//github.com/nothings/stb" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`stb`</a></u>`:简单的 C 库集合,C语言的轮子库,提供了很多实用的工具函数和数据结构。代码行数5000行左右,star数21.5k。`</b></li>``<li data-pid="UTR_vjwO"><a href="https://link.zhihu.com/?target=https%3A//github.com/h2o/picohttpparser" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`picohttpparser`</a>`:一个小型的 HTTP 解析器,适用于 C 语言。代码行数500行左右,star数1.6k。`</li><li data-pid="-gPuAtJq">``<a href="https://link.zhihu.com/?target=https%3A//github.com/rxi/log.c" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`log.c`</a>`:一个小型的日志库,支持多种日志级别和输出格式。代码行数200行左右,star数1.8k。`</li><li data-pid="Y85uDDJ1">``<a href="https://link.zhihu.com/?target=https%3A//github.com/floooh/sokol" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`sokol`</a>`:一个跨平台的轻量级图形 API,可以方便地创建 OpenGL 和 Metal 应用程序。代码行数上万了,star数4.4k。`<u><a href="https://link.zhihu.com/?target=https%3A//github.com/antirez/kilo" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`kilo`</a></u>`:一个小巧的文本编辑器,可以在终端中运行,并且支持基本的编辑操作。代码行数1000行左右,star数5.9k。`</li><li data-pid="N8KNmNi0">``<b><a href="https://link.zhihu.com/?target=https%3A//github.com/libuv/libuv" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`libuv`</a>`:一个跨平台异步 I/O 库,常用于Node.js的底层实现。这个库很火。代码行数过万,但是还是推荐,值得学习,star数21.2k。`</b></li>``<li data-pid="udJQS0Nr"><a href="https://link.zhihu.com/?target=https%3A//github.com/benhoyt/inih" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`inih`</a>`:一个小型的 INI 配置文件解析器,可以用于读取和修改 INI 文件格式的配置文件。代码行数800行左右,star数2k。`</li><li data-pid="xDP3kX5Q">``<a href="https://link.zhihu.com/?target=https%3A//github.com/nanopb/nanopb" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`nanopb`</a>`:一个小型的 Protocol Buf库,适用于嵌入式设备和内存受限环境。代码行数5000左右,star数3.4k。`</li><li data-pid="YKopOt8o">``<a href="https://link.zhihu.com/?target=https%3A//github.com/richgel999/miniz" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`miniz`</a>`:一个小型的 ZIP 文件压缩和解压库,可以在内存中处理数据。代码行数1600行左右,star数1.7k。`</li><li data-pid="N2CL5WgD">``<a href="https://link.zhihu.com/?target=https%3A//github.com/antirez/linenoise" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`linenoise`</a>`:一个小型的 readline 替代品,可以用于终端程序的交互式输入,Redis和MongoDB中都有使用。代码行数850左右,star数3.2k。`</li><li data-pid="ZldHJGVi">``<a href="https://link.zhihu.com/?target=https%3A//github.com/tass-belgium/picotcp" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`picotcp`</a>`:一个小型的 TCP/IP 协议栈。代码行数4000行左右,star数995。`</li><li data-pid="rXyeVTHJ">``<a href="https://link.zhihu.com/?target=https%3A//github.com/HardySimpson/zlog" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`zlog`</a>`:一个小型的纯C日志库,高性能,多线程。代码行数2000行左右,star数1.8k。`</li><li data-pid="i9CUq64q">``<a href="https://link.zhihu.com/?target=https%3A//github.com/sustrik/libmill" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`libmill`</a>`:一个小型的Go风格协程库,提供了高效的并发编程模型。代码行数3000行左右,star数2.6k。`</li><li data-pid="obyfeymT">``<u><a href="https://link.zhihu.com/?target=https%3A//github.com/troydhanson/uthash" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`uthash`</a></u>`:一个小型的哈希表实现库,可以用于 C 语言中的任何类型。代码行数1200行左右,star数3.4k。`</li><li data-pid="_Tg0e7NI">``<b><a href="https://link.zhihu.com/?target=https%3A//github.com/DaveGamble/cJSON" class=" wrap external" target="_blank" rel="nofollow noreferrer" data-za-detail-view-id="1043">`cJSON`</a>`:一个小型的JSON 解析器和生成器,可以用于C 语言中处理 JSON 数据,估计C语言开发很多人都会用这个Json库。代码行数1500行左右,star数8.6k。`</b></li>``</ol><p data-pid="qdB8a4Va">`请注意,上述提到的代码行数仅为粗略估计(粗略看了下),可能不是完全准确。而关于 star 数量,是在我最近检查时所观察到的数量。`</p><p data-pid="1_YughKs">``<b>`你也可以直接上这个网站上找各种开源仓库,这里收录了很多,强烈推荐:`</b></p>``<div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//cpp-reference.com/" data-draft-node="block" data-draft-type="link-card" data-text="C++知识库 | 收录各种各样的 C++ 优质内容" class="LinkCard new css-szaaq5" data-za-detail-view-id="172">``<span class="LinkCard-contents"><span class="LinkCard-title two-line">`C++知识库 | 收录各种各样的 C++ 优质内容`<span class="LinkCard-desc">`cpp-reference.com/`</a></div>``<figure data-size="normal"><noscript>``<img src="https://picx.zhimg.com/50/v2-9946bfd6504c27130c69c7d99dbe1009_720w.jpg?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="720" data-rawheight="371" data-original-token="v2-497373d6874fa7b84d1aa9654d18e071" data-default-watermark-src="https://picx.zhimg.com/50/v2-b1ce57121279c950f705c8091cf62bc9_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="720" data-original="https://picx.zhimg.com/v2-9946bfd6504c27130c69c7d99dbe1009_r.jpg?source=1def8aca"/></noscript>``<div><img src="https://picx.zhimg.com/80/v2-9946bfd6504c27130c69c7d99dbe1009_720w.webp?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="720" data-rawheight="371" data-original-token="v2-497373d6874fa7b84d1aa9654d18e071" data-default-watermark-src="https://picx.zhimg.com/50/v2-b1ce57121279c950f705c8091cf62bc9_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="720" data-original="https://picx.zhimg.com/v2-9946bfd6504c27130c69c7d99dbe1009_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-9946bfd6504c27130c69c7d99dbe1009_720w.jpg?source=1def8aca" height="371" data-lazy-status="ok">``</div></figure>``<p></p>`
<div class="RichContent-inner" style="max-height: 400px;"><div class="css-376mun"><span id="content"><span class="RichText ztext CopyrightRichText-richText css-1tkr2mx" options="[object Object]" itemprop="text"><p data-first-child="" data-pid="Ocn63Vrp">推荐是先易后难,这回先难后易,足够喝一壶。</p><p class="ztext-empty-paragraph"><br></p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://www.zhihu.com/question/20138166" data-draft-node="block" data-draft-type="link-card" data-text="哪有适合初学者阅读的C++代码资源?" class="LinkCard new css-szaaq5" data-za-detail-view-id="172"><span class="LinkCard-contents"><span class="LinkCard-title two-line">哪有适合初学者阅读的C++代码资源?</span><span class="LinkCard-desc LinkCard-desc-wrapper">1572 关注 · 25 回答 <a class="tag type_a">问题</a></span></span></a></div><p data-pid="-6MGgB_k">后面推荐的和上面的不重复。</p><p data-pid="vfkAMUD2">正经的内容开始了。</p><hr><p class="ztext-empty-paragraph"><br></p><p data-pid="nHZIJqCj">以下都是GUI开发项目,看看够不够劲。</p><h2>1、OpenRCT2</h2><p data-pid="jTvGu5AJ">简介:过山车大亨2开源实现</p><p data-pid="m_qkRLTy">难度:★★★★☆</p><p data-pid="UZE5BFxg">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/OpenRCT2/OpenRCT2" data-draft-node="block" data-draft-type="link-card" data-text="https://github.com/OpenRCT2/OpenRCT2github.com/OpenRCT2/OpenRCT2" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="iHsTKBv2">适合学习:游戏引擎、GUI开发</p><figure data-size="normal"><noscript><img src="https://pica.zhimg.com/50/v2-3165bd23ae3337a6bb7256b3897428b6_720w.jpg?source=1def8aca" data-rawwidth="1440" data-rawheight="1059" data-size="normal" data-caption="" data-original-token="v2-a6bcdeec0fbe2f1c4a3359f35614356c" data-default-watermark-src="https://picx.zhimg.com/50/v2-aaba8ef59a4e8bb285399a481e800d19_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="1440" data-original="https://pic1.zhimg.com/v2-3165bd23ae3337a6bb7256b3897428b6_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1440' height='1059'></svg>" data-rawwidth="1440" data-rawheight="1059" data-size="normal" data-caption="" data-original-token="v2-a6bcdeec0fbe2f1c4a3359f35614356c" data-default-watermark-src="https://picx.zhimg.com/50/v2-aaba8ef59a4e8bb285399a481e800d19_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="1440" data-original="https://pic1.zhimg.com/v2-3165bd23ae3337a6bb7256b3897428b6_r.jpg?source=1def8aca" data-actualsrc="https://pica.zhimg.com/50/v2-3165bd23ae3337a6bb7256b3897428b6_720w.jpg?source=1def8aca"></div></figure><h2>2、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=CodeLite&zhida_source=entity" target="_blank">CodeLite<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="orN4xVL5">简介:跨平台IDE</p><p data-pid="duQuZ9Kz">难度:★★★★☆</p><p data-pid="CALw7wRp">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/eranif/codelite" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - eranif/codelite: A multi purpose IDE specialized in C/C++/Rust/Python/PHP and Node.js. Written in C++" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="FD1MBA7S">适合学习:IDE开发、GUI设计</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-8e7bf937dc53383fe766c38c7cb396a8_720w.jpg?source=1def8aca" data-rawwidth="3350" data-rawheight="1562" data-size="normal" data-caption="" data-original-token="v2-19a450e4bcc54998f0003efd75ea4d31" data-default-watermark-src="https://picx.zhimg.com/50/v2-2558b56c24189ed001fe6e9b2216bc0e_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3350" data-original="https://pic1.zhimg.com/v2-8e7bf937dc53383fe766c38c7cb396a8_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3350' height='1562'></svg>" data-rawwidth="3350" data-rawheight="1562" data-size="normal" data-caption="" data-original-token="v2-19a450e4bcc54998f0003efd75ea4d31" data-default-watermark-src="https://picx.zhimg.com/50/v2-2558b56c24189ed001fe6e9b2216bc0e_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3350" data-original="https://pic1.zhimg.com/v2-8e7bf937dc53383fe766c38c7cb396a8_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-8e7bf937dc53383fe766c38c7cb396a8_720w.jpg?source=1def8aca"></div></figure><h2>3、VLC</h2><p data-pid="-O2wkd22">简介:知名的多媒体播放器</p><p data-pid="quesL-ms">难度:★★★★☆</p><p data-pid="MWbhqAdc">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/videolan/vlc" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - videolan/vlc: VLC media player - All pull requests are ignored, please use MRs on https://code.videolan.org/videolan/vlc" class="LinkCard new css-szaaq5" data-image="https://pic3.zhimg.com/v2-c567e1a913d6a08a0a88d3a51dfb335a_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="j_-p27xP">适合学习:多媒体播放器开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-b07fe2a44b6e3de3a78aff3cef8e0a20_720w.jpg?source=1def8aca" data-rawwidth="3412" data-rawheight="1704" data-size="normal" data-caption="" data-original-token="v2-2fea016296ddfcec0c52568439793745" data-default-watermark-src="https://pic1.zhimg.com/50/v2-e18b858b4f0e3e938a7a4699527fddb0_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3412" data-original="https://pic1.zhimg.com/v2-b07fe2a44b6e3de3a78aff3cef8e0a20_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3412' height='1704'></svg>" data-rawwidth="3412" data-rawheight="1704" data-size="normal" data-caption="" data-original-token="v2-2fea016296ddfcec0c52568439793745" data-default-watermark-src="https://pic1.zhimg.com/50/v2-e18b858b4f0e3e938a7a4699527fddb0_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3412" data-original="https://pic1.zhimg.com/v2-b07fe2a44b6e3de3a78aff3cef8e0a20_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-b07fe2a44b6e3de3a78aff3cef8e0a20_720w.jpg?source=1def8aca"></div></figure><h2><br>4、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=Audacity&zhida_source=entity" target="_blank">Audacity<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="qrLT1UZ6">简介:音频编辑软件</p><p data-pid="p-7dVgC1">难度:★★★★☆</p><p data-pid="-UWPjf6P">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/audacity/audacity" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - audacity/audacity: Audio Editor" class="LinkCard new css-szaaq5" data-image="https://pic3.zhimg.com/v2-2c4695696392ad40d507cd86e327f8e0_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="1OJFBG4-">适合学习:音频处理、GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-89c8088a26b9821e7a71581eeed92275_720w.jpg?source=1def8aca" data-rawwidth="3126" data-rawheight="1614" data-size="normal" data-caption="" data-original-token="v2-650e79e0ae0cb62cb20b398da9e6c2ed" data-default-watermark-src="https://pic1.zhimg.com/50/v2-f555cfba0b4e2fde9f15dae087cc118c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3126" data-original="https://picx.zhimg.com/v2-89c8088a26b9821e7a71581eeed92275_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3126' height='1614'></svg>" data-rawwidth="3126" data-rawheight="1614" data-size="normal" data-caption="" data-original-token="v2-650e79e0ae0cb62cb20b398da9e6c2ed" data-default-watermark-src="https://pic1.zhimg.com/50/v2-f555cfba0b4e2fde9f15dae087cc118c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3126" data-original="https://picx.zhimg.com/v2-89c8088a26b9821e7a71581eeed92275_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-89c8088a26b9821e7a71581eeed92275_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>5、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=FileZilla&zhida_source=entity" target="_blank">FileZilla<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="RzwQpWZ7">简介:FTP客户端</p><p data-pid="4RqBzCXi">难度:★★★★☆</p><p data-pid="tVD50RoG">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/basvodde/filezilla" data-draft-node="block" data-draft-type="link-card" data-text="https://github.com/basvodde/filezilla" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p class="ztext-empty-paragraph"><br></p><p data-pid="w8-uU0dm">适合学习:网络协议、GUI开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-dbc411cd856fbdc34a50e3da0d4dd36b_720w.jpg?source=1def8aca" data-rawwidth="3392" data-rawheight="1702" data-size="normal" data-caption="" data-original-token="v2-f93479528bb824e3c0c3ce78767f9417" data-default-watermark-src="https://picx.zhimg.com/50/v2-4f49ac152aa91af258b720ca6c705ca2_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3392" data-original="https://picx.zhimg.com/v2-dbc411cd856fbdc34a50e3da0d4dd36b_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3392' height='1702'></svg>" data-rawwidth="3392" data-rawheight="1702" data-size="normal" data-caption="" data-original-token="v2-f93479528bb824e3c0c3ce78767f9417" data-default-watermark-src="https://picx.zhimg.com/50/v2-4f49ac152aa91af258b720ca6c705ca2_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3392" data-original="https://picx.zhimg.com/v2-dbc411cd856fbdc34a50e3da0d4dd36b_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-dbc411cd856fbdc34a50e3da0d4dd36b_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>6、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=Process+Hacker&zhida_source=entity" target="_blank">Process Hacker<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="I3B_mhWj">简介:高级进程管理器</p><p data-pid="ejlvFQ3M">难度:★★★★☆</p><p data-pid="XL0wYoZr">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/processhacker/processhacker" data-draft-node="block" data-draft-type="link-card" data-text="https://github.com/processhacker/processhacker" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="PQP8AUS6">适合学习:系统编程、GUI开发</p><figure data-size="normal"><noscript><img src="https://pica.zhimg.com/50/v2-b329633227f8e2f29899c29095c9188c_720w.jpg?source=1def8aca" data-rawwidth="2982" data-rawheight="1442" data-size="normal" data-caption="" data-original-token="v2-989b72774fd8aa133bff9796549573f4" data-default-watermark-src="https://pic1.zhimg.com/50/v2-2f1a5eedd4f3d4e1a8591758daf3feb8_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="2982" data-original="https://pic1.zhimg.com/v2-b329633227f8e2f29899c29095c9188c_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='2982' height='1442'></svg>" data-rawwidth="2982" data-rawheight="1442" data-size="normal" data-caption="" data-original-token="v2-989b72774fd8aa133bff9796549573f4" data-default-watermark-src="https://pic1.zhimg.com/50/v2-2f1a5eedd4f3d4e1a8591758daf3feb8_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="2982" data-original="https://pic1.zhimg.com/v2-b329633227f8e2f29899c29095c9188c_r.jpg?source=1def8aca" data-actualsrc="https://pica.zhimg.com/50/v2-b329633227f8e2f29899c29095c9188c_720w.jpg?source=1def8aca"></div></figure><h2>7、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=NotePad%2B%2B&zhida_source=entity" target="_blank">NotePad++<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="UCxnT16T">简介:知名的文本编辑器</p><p data-pid="UcUlPl1q">难度:★★★☆☆</p><p data-pid="cXJMb8pi">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/notepad-plus-plus/notepad-plus-plus" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - notepad-plus-plus/notepad-plus-plus: Notepad++ official repository" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-2fa85d9b5efa020006df0d0d0af30ab7_720w.jpg?source=1def8aca" data-rawwidth="2684" data-rawheight="1596" data-size="normal" data-caption="" data-original-token="v2-bd1286be00ae2c01977b2f2abef62e02" data-default-watermark-src="https://pica.zhimg.com/50/v2-c9150d53858e7376d6dfd509aacdda5c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="2684" data-original="https://picx.zhimg.com/v2-2fa85d9b5efa020006df0d0d0af30ab7_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='2684' height='1596'></svg>" data-rawwidth="2684" data-rawheight="1596" data-size="normal" data-caption="" data-original-token="v2-bd1286be00ae2c01977b2f2abef62e02" data-default-watermark-src="https://pica.zhimg.com/50/v2-c9150d53858e7376d6dfd509aacdda5c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="2684" data-original="https://picx.zhimg.com/v2-2fa85d9b5efa020006df0d0d0af30ab7_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-2fa85d9b5efa020006df0d0d0af30ab7_720w.jpg?source=1def8aca"></div></figure><p data-pid="2k2b7zGK">适合学习:文本处理、GUI开发</p><p class="ztext-empty-paragraph"><br></p><h2>8、Thunderpad</h2><p data-pid="L2j7mbqZ">简介:轻量级文本编辑器</p><p data-pid="kwckU8Au">难度:★★☆☆☆</p><p data-pid="LjhN9-kh">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/alex-97/thunderpad" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - alex-spataru/Thunderpad: A simple, powerful and cross-platform text editor" class="LinkCard new css-szaaq5" data-image="https://pic3.zhimg.com/v2-02f8b9d31737ad5115897afccf5c9866_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="mw86f6-4">适合学习:基础GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-58407a71464c6776783148fd6df6299c_720w.jpg?source=1def8aca" data-rawwidth="2778" data-rawheight="1400" data-size="normal" data-caption="" data-original-token="v2-bb3ea0e523c075799899fe69b866f56e" data-default-watermark-src="https://picx.zhimg.com/50/v2-c8a9548b416ebc85e577e79239a4c62c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="2778" data-original="https://pic1.zhimg.com/v2-58407a71464c6776783148fd6df6299c_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='2778' height='1400'></svg>" data-rawwidth="2778" data-rawheight="1400" data-size="normal" data-caption="" data-original-token="v2-bb3ea0e523c075799899fe69b866f56e" data-default-watermark-src="https://picx.zhimg.com/50/v2-c8a9548b416ebc85e577e79239a4c62c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="2778" data-original="https://pic1.zhimg.com/v2-58407a71464c6776783148fd6df6299c_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-58407a71464c6776783148fd6df6299c_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>9、SFML Game Development</h2><p data-pid="CnL0JiFm">简介:使用SFML的游戏开发框架</p><p data-pid="Eo1_W2K6">难度:★★★☆☆</p><p data-pid="yjUahc9t">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/SFML/SFML-Game-Development-Book" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - SFML/SFML-Game-Development-Book: Full and up-to-date source code of the chapters of the "SFML Game Development" book" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="4Lue5NrO">适合学习:游戏开发基础</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-c879e1545c25b48672d2ecab264d2714_720w.jpg?source=1def8aca" data-rawwidth="3204" data-rawheight="1666" data-size="normal" data-caption="" data-original-token="v2-309121cce0e6af1f9ec272fd503cec8f" data-default-watermark-src="https://pic1.zhimg.com/50/v2-7e8ff98f6b61ebd4bf75801e6c2ea65c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3204" data-original="https://picx.zhimg.com/v2-c879e1545c25b48672d2ecab264d2714_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3204' height='1666'></svg>" data-rawwidth="3204" data-rawheight="1666" data-size="normal" data-caption="" data-original-token="v2-309121cce0e6af1f9ec272fd503cec8f" data-default-watermark-src="https://pic1.zhimg.com/50/v2-7e8ff98f6b61ebd4bf75801e6c2ea65c_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3204" data-original="https://picx.zhimg.com/v2-c879e1545c25b48672d2ecab264d2714_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-c879e1545c25b48672d2ecab264d2714_720w.jpg?source=1def8aca"></div></figure><h2>10、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=WinSCP&zhida_source=entity" target="_blank">WinSCP<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="46oLERoO">简介:Windows SSH文件传输客户端</p><p data-pid="-byzoDhm">难度:★★★☆☆</p><p data-pid="XpKCwxpX">地址:<a href="https://link.zhihu.com/?target=https%3A//github.com/winscp/winscp" class=" external" target="_blank" rel="nofollow noreferrer"><span class="invisible">https://</span><span class="visible">github.com/winscp/winsc</span><span class="invisible">p</span><span class="ellipsis"></span></a></p><p data-pid="Abvh1f16">适合学习:网络编程、GUI开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-eb8906f52ab8c56905e1468cf774a594_720w.jpg?source=1def8aca" data-rawwidth="3214" data-rawheight="1642" data-size="normal" data-caption="" data-original-token="v2-5cb3bf1392a2070b1134df72572fcc64" data-default-watermark-src="https://pic1.zhimg.com/50/v2-7dc51cdff2109e5797e2ef23c75583fa_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3214" data-original="https://pica.zhimg.com/v2-eb8906f52ab8c56905e1468cf774a594_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3214' height='1642'></svg>" data-rawwidth="3214" data-rawheight="1642" data-size="normal" data-caption="" data-original-token="v2-5cb3bf1392a2070b1134df72572fcc64" data-default-watermark-src="https://pic1.zhimg.com/50/v2-7dc51cdff2109e5797e2ef23c75583fa_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3214" data-original="https://pica.zhimg.com/v2-eb8906f52ab8c56905e1468cf774a594_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-eb8906f52ab8c56905e1468cf774a594_720w.jpg?source=1def8aca"></div></figure><h2>11、CPU-X</h2><p data-pid="mho0QN0w">简介:CPU信息查看工具</p><p data-pid="qYO1lO3a">难度:★★★☆☆</p><p data-pid="WUKwDPn5">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/X0rg/CPU-X" data-draft-node="block" data-draft-type="link-card" data-text="https://github.com/X0rg/CPU-X" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="Cb_JJFXe">适合学习:系统信息获取、GUI开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-b43c62fffe845815d1b7fc4b744d1338_720w.jpg?source=1def8aca" data-rawwidth="3300" data-rawheight="1702" data-size="normal" data-caption="" data-original-token="v2-87c16235b3ab1adc8d7e190e27092a40" data-default-watermark-src="https://picx.zhimg.com/50/v2-9f0fa4aafd9f1f880787d80917d8fb46_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3300" data-original="https://pic1.zhimg.com/v2-b43c62fffe845815d1b7fc4b744d1338_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3300' height='1702'></svg>" data-rawwidth="3300" data-rawheight="1702" data-size="normal" data-caption="" data-original-token="v2-87c16235b3ab1adc8d7e190e27092a40" data-default-watermark-src="https://picx.zhimg.com/50/v2-9f0fa4aafd9f1f880787d80917d8fb46_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3300" data-original="https://pic1.zhimg.com/v2-b43c62fffe845815d1b7fc4b744d1338_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-b43c62fffe845815d1b7fc4b744d1338_720w.jpg?source=1def8aca"></div></figure><h2>12、ImageMagick</h2><p data-pid="B7JfpK__">简介:图像处理库</p><p data-pid="Xh9Kc-jy">难度:★★★☆☆</p><p data-pid="C8AsOPWb">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/ImageMagick/ImageMagick" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - ImageMagick/ImageMagick: ♂️ ImageMagick 7" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="sOiSF5ka">适合学习:图像处理算法</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-1adcd0fb2df5c467205e0932b7a8d6a0_720w.jpg?source=1def8aca" data-rawwidth="3206" data-rawheight="1626" data-size="normal" data-caption="" data-original-token="v2-d4b54370de4c5c5a54774cece9b745cb" data-default-watermark-src="https://picx.zhimg.com/50/v2-c780c156ea5cbd97f061eaf1b049dc8b_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3206" data-original="https://picx.zhimg.com/v2-1adcd0fb2df5c467205e0932b7a8d6a0_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3206' height='1626'></svg>" data-rawwidth="3206" data-rawheight="1626" data-size="normal" data-caption="" data-original-token="v2-d4b54370de4c5c5a54774cece9b745cb" data-default-watermark-src="https://picx.zhimg.com/50/v2-c780c156ea5cbd97f061eaf1b049dc8b_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3206" data-original="https://picx.zhimg.com/v2-1adcd0fb2df5c467205e0932b7a8d6a0_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-1adcd0fb2df5c467205e0932b7a8d6a0_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>13、PhotoFlare</h2><p data-pid="PhfqOUNy">简介:图像编辑器</p><p data-pid="21gjnxbt">难度:★★★☆☆</p><p data-pid="gafmumVB">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/PhotoFlare/photoflare" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - PhotoFlare/photoflare: Quick, simple but powerful Cross Platform image editor." class="LinkCard new css-szaaq5" data-image="https://pic2.zhimg.com/v2-d77bb635b40aaa24cef6a146a9b66361_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="XB3WKSBT">适合学习:图像处理、GUI开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-5536a8e8e3488601c3419be883d71c9c_720w.jpg?source=1def8aca" data-rawwidth="1838" data-rawheight="1404" data-size="normal" data-caption="" data-original-token="v2-0416ae0979649dd63143eebd369dd664" data-default-watermark-src="https://pic1.zhimg.com/50/v2-a05300e7a2762bc9e4053c38f4311acb_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="1838" data-original="https://picx.zhimg.com/v2-5536a8e8e3488601c3419be883d71c9c_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1838' height='1404'></svg>" data-rawwidth="1838" data-rawheight="1404" data-size="normal" data-caption="" data-original-token="v2-0416ae0979649dd63143eebd369dd664" data-default-watermark-src="https://pic1.zhimg.com/50/v2-a05300e7a2762bc9e4053c38f4311acb_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="1838" data-original="https://picx.zhimg.com/v2-5536a8e8e3488601c3419be883d71c9c_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-5536a8e8e3488601c3419be883d71c9c_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>14、KeePassXC</h2><p data-pid="j4bwdtY5">简介:密码管理器</p><p data-pid="b9fKaWEU">难度:★★★☆☆</p><p data-pid="9Wsi71Nv">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/keepassxreboot/keepassxc" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - keepassxreboot/keepassxc: KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”." class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="OnHIsG4R">适合学习:加密算法、GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-49bd24a92e28e2b8ca1e770a874eca93_720w.jpg?source=1def8aca" data-rawwidth="3154" data-rawheight="1630" data-size="normal" data-caption="" data-original-token="v2-b60aa3c2213c743ff6a8397bd414a276" data-default-watermark-src="https://pica.zhimg.com/50/v2-4a39f4b0113d1390f1080e95dfd9e032_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3154" data-original="https://picx.zhimg.com/v2-49bd24a92e28e2b8ca1e770a874eca93_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3154' height='1630'></svg>" data-rawwidth="3154" data-rawheight="1630" data-size="normal" data-caption="" data-original-token="v2-b60aa3c2213c743ff6a8397bd414a276" data-default-watermark-src="https://pica.zhimg.com/50/v2-4a39f4b0113d1390f1080e95dfd9e032_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3154" data-original="https://picx.zhimg.com/v2-49bd24a92e28e2b8ca1e770a874eca93_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-49bd24a92e28e2b8ca1e770a874eca93_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>15、qBittorrent</h2><p data-pid="B1ovvqHq">简介:BT下载客户端</p><p data-pid="9kiHmm9b">难度:★★★★☆</p><p data-pid="tTDwM8lq">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/qbittorrent/qBittorrent" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - qbittorrent/qBittorrent: qBittorrent BitTorrent client" class="LinkCard new css-szaaq5" data-image="https://pica.zhimg.com/v2-4bb8c03feaed7d017e6b0bed42ae92e4_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="EHZ9ZAJk">适合学习:P2P网络、GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-e6f54453035bad054f42158bc57f3212_720w.jpg?source=1def8aca" data-rawwidth="3206" data-rawheight="1608" data-size="normal" data-caption="" data-original-token="v2-9c47a911e53bd389389bdf9e6f729e29" data-default-watermark-src="https://picx.zhimg.com/50/v2-26ac752e8e3018d6e1dc85e0ae5df87b_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3206" data-original="https://picx.zhimg.com/v2-e6f54453035bad054f42158bc57f3212_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3206' height='1608'></svg>" data-rawwidth="3206" data-rawheight="1608" data-size="normal" data-caption="" data-original-token="v2-9c47a911e53bd389389bdf9e6f729e29" data-default-watermark-src="https://picx.zhimg.com/50/v2-26ac752e8e3018d6e1dc85e0ae5df87b_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3206" data-original="https://picx.zhimg.com/v2-e6f54453035bad054f42158bc57f3212_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-e6f54453035bad054f42158bc57f3212_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>16、OpenShot</h2><p data-pid="5r2qz49V">简介:视频编辑器</p><p data-pid="RPUY9pyW">难度:★★★☆☆</p><p data-pid="oy3Js-jg">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/OpenShot/openshot-qt" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - OpenShot/openshot-qt: OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world." class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="EFd_f4jY">适合学习:视频处理、GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-346d8a9a640d41bab0b9d854955253f7_720w.jpg?source=1def8aca" data-rawwidth="3218" data-rawheight="1622" data-size="normal" data-caption="" data-original-token="v2-7a274f5dc9c15bd5826596375f682c9a" data-default-watermark-src="https://picx.zhimg.com/50/v2-9bafdfc8a962dc6defc924efe06c64a9_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3218" data-original="https://pica.zhimg.com/v2-346d8a9a640d41bab0b9d854955253f7_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3218' height='1622'></svg>" data-rawwidth="3218" data-rawheight="1622" data-size="normal" data-caption="" data-original-token="v2-7a274f5dc9c15bd5826596375f682c9a" data-default-watermark-src="https://picx.zhimg.com/50/v2-9bafdfc8a962dc6defc924efe06c64a9_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3218" data-original="https://pica.zhimg.com/v2-346d8a9a640d41bab0b9d854955253f7_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-346d8a9a640d41bab0b9d854955253f7_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>17、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=Shotcut&zhida_source=entity" target="_blank">Shotcut<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="P0L7WRqI">简介:视频编辑器</p><p data-pid="qUMuWfqk">难度:★★★★☆</p><p data-pid="tBlBz1bZ">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/mltframework/shotcut" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - mltframework/shotcut: cross-platform (Qt), open-source (GPLv3) video editor" class="LinkCard new css-szaaq5" data-image="https://pic3.zhimg.com/v2-22761bc968cd4ca5335598ec29a99c0e_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="YFnFEBZN">适合学习:多媒体处理、GUI开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-766d442af3010a2c60081089bf7ccbd9_720w.jpg?source=1def8aca" data-rawwidth="1844" data-rawheight="1426" data-size="normal" data-caption="" data-original-token="v2-a0433d716340b3e24f1b06ad2e4ebe49" data-default-watermark-src="https://pic1.zhimg.com/50/v2-e4fde5ac61d103bb366cf25c86d03a04_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="1844" data-original="https://picx.zhimg.com/v2-766d442af3010a2c60081089bf7ccbd9_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1844' height='1426'></svg>" data-rawwidth="1844" data-rawheight="1426" data-size="normal" data-caption="" data-original-token="v2-a0433d716340b3e24f1b06ad2e4ebe49" data-default-watermark-src="https://pic1.zhimg.com/50/v2-e4fde5ac61d103bb366cf25c86d03a04_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="1844" data-original="https://picx.zhimg.com/v2-766d442af3010a2c60081089bf7ccbd9_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-766d442af3010a2c60081089bf7ccbd9_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>18、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=GoldenDict&zhida_source=entity" target="_blank">GoldenDict<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="Pyz-J5Kf">简介:电子词典</p><p data-pid="TOmVx18i">难度:★★★☆☆</p><p data-pid="nKU2fefR">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/goldendict/goldendict" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - goldendict/goldendict: A feature-rich dictionary lookup program, supporting multiple dictionary formats (StarDict/Babylon/Lingvo/Dictd) and online dictionaries, featuring perfect article rendering with the complete markup, illustrations and other content retained, and allowing you to type in words without any accents or correct case." class="LinkCard new css-szaaq5" data-image="https://pic4.zhimg.com/v2-1fe5f2dfe43ce35f2bff665ecc772f69_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="NqMp7UB8">适合学习:数据索引、GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-bf14796d71a8b404e4a982b5eda9358f_720w.jpg?source=1def8aca" data-rawwidth="3056" data-rawheight="1548" data-size="normal" data-caption="" data-original-token="v2-b160afb504dfaf04d78edbfd0adb6597" data-default-watermark-src="https://pica.zhimg.com/50/v2-669424ef7e73f3ba4adc7ee29d3c8de7_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3056" data-original="https://picx.zhimg.com/v2-bf14796d71a8b404e4a982b5eda9358f_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3056' height='1548'></svg>" data-rawwidth="3056" data-rawheight="1548" data-size="normal" data-caption="" data-original-token="v2-b160afb504dfaf04d78edbfd0adb6597" data-default-watermark-src="https://pica.zhimg.com/50/v2-669424ef7e73f3ba4adc7ee29d3c8de7_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3056" data-original="https://picx.zhimg.com/v2-bf14796d71a8b404e4a982b5eda9358f_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-bf14796d71a8b404e4a982b5eda9358f_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>19、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=Tiled&zhida_source=entity" target="_blank">Tiled<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="wHQTqosU">简介:地图编辑器</p><p data-pid="0qNGjccs">难度:★★★☆☆</p><p data-pid="vbH4m_e0">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/bjorn/tiled" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - mapeditor/tiled: Flexible level editor" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="1hkAGH7L">适合学习:图形编辑器开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-3b1d8d524a5055e7a3b582517781f4a2_720w.jpg?source=1def8aca" data-rawwidth="3230" data-rawheight="1676" data-size="normal" data-caption="" data-original-token="v2-a30f004637a823704062db0a4742f9cb" data-default-watermark-src="https://picx.zhimg.com/50/v2-d7e997bcd7bd05ddbdf9b107f4e8cfe4_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3230" data-original="https://picx.zhimg.com/v2-3b1d8d524a5055e7a3b582517781f4a2_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3230' height='1676'></svg>" data-rawwidth="3230" data-rawheight="1676" data-size="normal" data-caption="" data-original-token="v2-a30f004637a823704062db0a4742f9cb" data-default-watermark-src="https://picx.zhimg.com/50/v2-d7e997bcd7bd05ddbdf9b107f4e8cfe4_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3230" data-original="https://picx.zhimg.com/v2-3b1d8d524a5055e7a3b582517781f4a2_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-3b1d8d524a5055e7a3b582517781f4a2_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>20、<span><a class="RichContent-EntityWord css-1x3bg93" data-za-not-track-link="true" data-paste-text="true" href="https://zhida.zhihu.com/search?content_id=704115923&content_type=Answer&match_order=1&q=OpenToonz&zhida_source=entity" target="_blank">OpenToonz<svg width="10px" height="10px" viewBox="0 0 16 16" class="ZDI ZDI--FourPointedStar16 css-1dvsrp" fill="currentColor"><path d="m5.068 9.267-3.08-.77a.512.512 0 0 1 0-.994l3.08-.77a2.289 2.289 0 0 0 1.665-1.665l.77-3.08a.512.512 0 0 1 .994 0l.77 3.08c.205.82.845 1.46 1.665 1.665l3.08.77a.512.512 0 0 1 0 .994l-3.08.77a2.29 2.29 0 0 0-1.665 1.665l-.77 3.08a.512.512 0 0 1-.994 0l-.77-3.08a2.289 2.289 0 0 0-1.665-1.665Z"></path></svg></a></span></h2><p data-pid="m1iBmdf9">简介:2D动画制作软件</p><p data-pid="jndf8Ejh">难度:★★★☆☆</p><p data-pid="KtzpkWz7">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/opentoonz/opentoonz" data-draft-node="block" data-draft-type="link-card" data-text="https://github.com/opentoonz/opentoonz" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="vZpUUwoH">适合学习:图形动画、GUI开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-f18fc94a7ba451804fb15c46de7089b9_720w.jpg?source=1def8aca" data-rawwidth="3348" data-rawheight="1624" data-size="normal" data-caption="" data-original-token="v2-84e47d8c2750cccb0a684f48c1de74c1" data-default-watermark-src="https://picx.zhimg.com/50/v2-30f9c2eb982771a8e19f404b5493e832_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="3348" data-original="https://pic1.zhimg.com/v2-f18fc94a7ba451804fb15c46de7089b9_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3348' height='1624'></svg>" data-rawwidth="3348" data-rawheight="1624" data-size="normal" data-caption="" data-original-token="v2-84e47d8c2750cccb0a684f48c1de74c1" data-default-watermark-src="https://picx.zhimg.com/50/v2-30f9c2eb982771a8e19f404b5493e832_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="3348" data-original="https://pic1.zhimg.com/v2-f18fc94a7ba451804fb15c46de7089b9_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-f18fc94a7ba451804fb15c46de7089b9_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><p data-pid="DspqIF4X">21、Pencil2D</p><p data-pid="lfU16D-F">简介:动画制作软件</p><p data-pid="e-kL0QMs">难度:★★★☆☆</p><p data-pid="q30m-Xnb">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/pencil2d/pencil" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - pencil2d/pencil: Pencil2D is an easy, intuitive tool to make 2D hand-drawn animations. Pencil2D is open source and cross-platform." class="LinkCard new css-szaaq5" data-image="https://pic1.zhimg.com/v2-ad597cbba0f03b410e270b9697136abc_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="rqdNefxr">适合学习:动画制作、GUI开发</p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-f15948774ba27ec799a84023b1d9717a_720w.jpg?source=1def8aca" data-rawwidth="1848" data-rawheight="1498" data-size="normal" data-caption="" data-original-token="v2-cea30e115954eb5f6d8fe93299bc2034" data-default-watermark-src="https://pica.zhimg.com/50/v2-ce3f736467f694b049ff41bcc2197f06_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="1848" data-original="https://pic1.zhimg.com/v2-f15948774ba27ec799a84023b1d9717a_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1848' height='1498'></svg>" data-rawwidth="1848" data-rawheight="1498" data-size="normal" data-caption="" data-original-token="v2-cea30e115954eb5f6d8fe93299bc2034" data-default-watermark-src="https://pica.zhimg.com/50/v2-ce3f736467f694b049ff41bcc2197f06_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="1848" data-original="https://pic1.zhimg.com/v2-f15948774ba27ec799a84023b1d9717a_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-f15948774ba27ec799a84023b1d9717a_720w.jpg?source=1def8aca"></div></figure><h2>22、LMMS</h2><p data-pid="mLh6VuJ8">简介:音乐制作软件</p><p data-pid="fM2prCVT">难度:★★★☆☆</p><p data-pid="PhUP1uKb">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/LMMS/lmms" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - LMMS/lmms: Cross-platform music production software" class="LinkCard new css-szaaq5" data-image="https://picx.zhimg.com/v2-ca214d519aeefd98810144b0a3259a1d_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="VDbW6lJa">适合学习:音频处理、GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-321623cd0ae69e0810a5506f3972231d_720w.jpg?source=1def8aca" data-rawwidth="2740" data-rawheight="1552" data-size="normal" data-caption="" data-original-token="v2-c7a12d28c658b9349bc24750ed5bd850" data-default-watermark-src="https://picx.zhimg.com/50/v2-27b1d415b907b58ce0d0ecbf597b571f_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="2740" data-original="https://pic1.zhimg.com/v2-321623cd0ae69e0810a5506f3972231d_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='2740' height='1552'></svg>" data-rawwidth="2740" data-rawheight="1552" data-size="normal" data-caption="" data-original-token="v2-c7a12d28c658b9349bc24750ed5bd850" data-default-watermark-src="https://picx.zhimg.com/50/v2-27b1d415b907b58ce0d0ecbf597b571f_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="2740" data-original="https://pic1.zhimg.com/v2-321623cd0ae69e0810a5506f3972231d_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-321623cd0ae69e0810a5506f3972231d_720w.jpg?source=1def8aca"></div></figure><h2>23、YUView</h2><p data-pid="bvX4PlQf">简介:视频质量分析工具</p><p data-pid="IJODSu_Y">难度:★★★☆☆</p><p data-pid="cip3QxGy">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/IENT/YUView" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - IENT/YUView: The Free and Open Source Cross Platform YUV Viewer with an advanced analytics toolset" class="LinkCard new css-szaaq5" data-image="https://pic3.zhimg.com/v2-883a1e4a1e89d133b52b55183d392066_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="4C0F2fAT">适合学习:视频分析、GUI开发</p><figure data-size="normal"><noscript><img src="https://pica.zhimg.com/50/v2-fa8ac8a7a39373c7315d8a030c4da5ec_720w.jpg?source=1def8aca" data-rawwidth="1028" data-rawheight="789" data-size="normal" data-caption="" data-original-token="v2-80c5bcda568d04820f6cf01f9731a17c" data-default-watermark-src="https://pic1.zhimg.com/50/v2-c42af7b1e305852c1eb5c6069877839b_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="1028" data-original="https://pica.zhimg.com/v2-fa8ac8a7a39373c7315d8a030c4da5ec_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1028' height='789'></svg>" data-rawwidth="1028" data-rawheight="789" data-size="normal" data-caption="" data-original-token="v2-80c5bcda568d04820f6cf01f9731a17c" data-default-watermark-src="https://pic1.zhimg.com/50/v2-c42af7b1e305852c1eb5c6069877839b_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="1028" data-original="https://pica.zhimg.com/v2-fa8ac8a7a39373c7315d8a030c4da5ec_r.jpg?source=1def8aca" data-actualsrc="https://pica.zhimg.com/50/v2-fa8ac8a7a39373c7315d8a030c4da5ec_720w.jpg?source=1def8aca"></div></figure><h2>24、Deepin Calculator</h2><p data-pid="-hLVR5YZ">简介:深度计算器</p><p data-pid="1Of277ra">难度:★★☆☆☆</p><p data-pid="wmdHMbvh">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/linuxdeepin/deepin-calculator" data-draft-node="block" data-draft-type="link-card" data-text="GitHub - linuxdeepin/deepin-calculator: Calculator for DDE" class="LinkCard new css-szaaq5" data-image="https://picx.zhimg.com/v2-6bbdbab5679877796cede82eb3dc86bd_ipico.jpg"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="5j2pMpaa">适合学习:基础GUI开发</p><p class="ztext-empty-paragraph"><br></p><figure data-size="normal"><noscript><img src="https://picx.zhimg.com/50/v2-10bdc699e8581bd032ab29ad9ba3850e_720w.jpg?source=1def8aca" data-rawwidth="2774" data-rawheight="1390" data-size="normal" data-caption="" data-original-token="v2-a716e46caab8b36c085ee611dac75f51" data-default-watermark-src="https://pic1.zhimg.com/50/v2-ed36032793079d29eeba97afc851daa4_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="2774" data-original="https://picx.zhimg.com/v2-10bdc699e8581bd032ab29ad9ba3850e_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='2774' height='1390'></svg>" data-rawwidth="2774" data-rawheight="1390" data-size="normal" data-caption="" data-original-token="v2-a716e46caab8b36c085ee611dac75f51" data-default-watermark-src="https://pic1.zhimg.com/50/v2-ed36032793079d29eeba97afc851daa4_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="2774" data-original="https://picx.zhimg.com/v2-10bdc699e8581bd032ab29ad9ba3850e_r.jpg?source=1def8aca" data-actualsrc="https://picx.zhimg.com/50/v2-10bdc699e8581bd032ab29ad9ba3850e_720w.jpg?source=1def8aca"></div></figure><p class="ztext-empty-paragraph"><br></p><h2>25、<b><span class="nolink"><u>Calculator</u></span></b></h2><p data-pid="twM6Iomk">简介:简单计算器</p><p data-pid="rRwOQAB0">难度:★☆☆☆☆</p><p data-pid="M1psmDrP">地址:</p><div class="RichText-LinkCardContainer"><a target="_blank" href="https://link.zhihu.com/?target=https%3A//github.com/microsoft/calculator" data-draft-node="block" data-draft-type="link-card" data-text="https://github.com/microsoft/calculator" class="LinkCard new css-szaaq5"><span class="LinkCard-image LinkCard-image--default"></span><span class="LinkCard-contents"><span class="LinkCard-title loading" data-text="true"></span><span class="LinkCard-desc loading"></span></span></a></div><p data-pid="5WH9ZDA2">适合学习:基础GUI开发</p><figure data-size="normal"><noscript><img src="https://pic1.zhimg.com/50/v2-ce5dba5a2db58d99af63fe4cbb2eaa55_720w.jpg?source=1def8aca" data-rawwidth="987" data-rawheight="1360" data-size="normal" data-caption="" data-original-token="v2-cd119ad26f8c6dac91b2c78a828ea06e" data-default-watermark-src="https://picx.zhimg.com/50/v2-1edd80bc355c726ac36879254e77fe44_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="987" data-original="https://pica.zhimg.com/v2-ce5dba5a2db58d99af63fe4cbb2eaa55_r.jpg?source=1def8aca"/></noscript><div><img src="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='987' height='1360'></svg>" data-rawwidth="987" data-rawheight="1360" data-size="normal" data-caption="" data-original-token="v2-cd119ad26f8c6dac91b2c78a828ea06e" data-default-watermark-src="https://picx.zhimg.com/50/v2-1edd80bc355c726ac36879254e77fe44_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb lazy" width="987" data-original="https://pica.zhimg.com/v2-ce5dba5a2db58d99af63fe4cbb2eaa55_r.jpg?source=1def8aca" data-actualsrc="https://pic1.zhimg.com/50/v2-ce5dba5a2db58d99af63fe4cbb2eaa55_720w.jpg?source=1def8aca"></div></figure><p></p></span><span id="VirtualCatalogAnchorPoint"></span></span></div></div>