自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(549)
  • 收藏
  • 关注

原创 std::is_same

是编译时类型检查的核心工具,适用于泛型编程、类型安全校验等场景,强调精确的类型匹配逻辑。是 C++11 引入的模板元编程工具,用于在编译时判断两个类型是否完全相同。头文件中,属于类型特性(type traits)的一部分。• 严格类型匹配:忽略 CV 限定符(如。别名或完全相同的定义),则返回。2025年5月18日,周日晚上。• 别名识别:能识别通过。在编译时强制类型约束。

2025-05-18 21:32:02 198

原创 将C++类编译为JavaScript代码

使用工具链如Emscripten将C++代码(包括类)编译为WebAssembly(.wasm)和配套的JavaScript胶水代码。• 兼容性:现代浏览器均支持WebAssembly(Chrome 57+、Firefox 52+等)。推荐使用Emscripten编译为WebAssembly,这是最成熟高效的方案。• 性能:WebAssembly接近原生速度,适合计算密集型任务。可直接在浏览器中调用C++类的方法。2025年5月14日,周三深夜。命令编译C++类代码,生成。

2025-05-14 00:20:29 171

原创 C语言中的assert

是 C 语言中强大的调试工具,用于快速捕获程序中的非法假设。合理使用可提高代码可靠性,但需注意其适用场景(开发阶段)和局限性(不处理外部错误)。它的核心作用是检查程序中的假设条件是否成立,若条件不成立(即表达式为假),则立即终止程序并输出错误信息,帮助开发者快速定位问题。断言适用于检查不应发生的内部错误(如程序逻辑错误),而外部输入错误(如用户输入无效)应使用。确保循环或算法中的关键条件始终成立(如数组索引不越界)。快速捕捉开发阶段的逻辑错误,替代部分临时调试代码。若表达式为真(非零),

2025-05-13 21:50:27 329

原创 set(CMAKE_C_FLAGS “${CMAKE_C_FLAGS} -ansi -pedantic -Wall“)

启用严格标准检查,拒绝不符合 ANSI/ISO C 的代码(如零长度数组、GCC 扩展语法等)。:要求编译器遵循 ANSI C 标准(即 C89/C90),禁用非标准扩展。:启用所有常见警告(如未使用变量、类型不匹配等),帮助发现潜在问题。:CMake 中用于设置 C 编译器选项的变量。2025年5月13日,周二晚上。

2025-05-13 21:39:17 374

原创 C字符串的特点

• 手动管理:需显式处理内存分配/释放,易引发缓冲区溢出或内存泄漏。总结:C字符串高效但风险高,适用于底层开发;(ASCII值为0)结尾的字符数组。)内容不可修改,否则行为未定义。2025年5月13日,周二下午。• 字符数组:本质是以空字符。• 不可变性:字符串常量(如。• 操作依赖库函数:通过。

2025-05-13 17:33:03 626

原创 【TDengine源码阅读】从哪里开始看源码比较好?

2025年5月13日,周二清晨。文件开始看可能会比较好。

2025-05-13 07:57:53 116

原创 【TDengine源码阅读】DLL_EXPORT

这段代码是一个跨平台的宏定义,用于处理不同操作系统下动态库(DLL/SO)中函数的导出声明。◦ Linux/macOS的共享库(.so/.dylib)默认导出所有符号(除非显式隐藏)。为啥Linux和MacOS平台时宏为空,难道Linux和mac不用定义导出函数吗?• 设计差异:Windows的DLL需要显式声明导出/导入(通过。显式标记需要导出的函数/类,这是Windows特有的语法。• 扩展语法:Linux/macOS通过编译选项(如。)和属性控制可见性,而非关键字。Linux/macOS平台(

2025-05-13 07:51:32 463

原创 TDengine编译成功后的bin目录下的文件的作用

• RESTful接口服务,支持InfluxDB/OpenTSDB兼容协议,集成Telegraf等数据采集工具。• 数据备份与迁移工具,支持逻辑备份(导出为Apache Avro格式)和恢复。• 性能测试工具,支持对TDengine的写入、查询和订阅功能进行基准测试。• 代码评测工具,用于本地测试程序正确性和性能(如时间/内存消耗分析)。• 命令行客户端工具,用于连接TDengine服务器并执行SQL操作。• 原为独立项目,可能被集成到TDengine开发工具链中。客户端的别名存在,现已被统一整合到。

2025-05-13 07:37:16 920

原创 【TDengine源码阅读】#if defined(__APPLE__)

是 C/C++ 中的条件编译指令,用于检查当前编译环境是否为苹果(Apple)平台(如 macOS 或 iOS)。该宏由苹果平台的编译器(如 Clang)自动定义,标识当前系统为苹果生态。总结:这段代码的作用是仅在苹果系统下编译后续代码,常见于需要适配多平台的程序。在预处理阶段,编译器会根据目标平台自动定义相关宏(如。:若条件为真(宏已定义),则编译后续代码;常用于跨平台代码中,针对苹果系统编写特定逻辑。等),条件编译指令据此选择性地保留或排除代码块。是编译器预定义的宏,不同于用户自定义宏。

2025-05-13 06:48:51 401

原创 【TDengine源码阅读】TAOS_DEF_ERROR_CODE(mod, code)

参考类似位操作宏的实现逻辑,这种设计在嵌入式或系统编程中常见,用于高效编码和解码错误信息。• 符号位:最高位固定为1,生成的错误码始终为负数,符合许多系统将负数作为错误码的惯例。• 这种设计常用于系统或库中,通过模块标识符和错误码的组合,快速定位错误来源。,表示最高位(符号位)为1,确保生成的错误码为负数(通常用于标识错误状态)。左移16位,使其占据第16~31位(共16位)。的值,占据低16位(第0~15位)。不超过16位),否则可能导致位溢出。,用于生成一个32位有符号整数((32位有符号整数)。

2025-05-13 06:38:32 594

原创 什么是时序数据库?

时序数据库(Time Series Database,TSDB)是一种专门用于高效存储、管理和分析时间序列数据的数据库系统。时间序列数据是指按时间顺序记录的数据点,通常包含时间戳和对应的数值或事件,广泛应用于物联网、工业监控、金融、气象等领域。时序数据库通过针对性的设计,解决了海量时间相关数据的存储和分析瓶颈,是数字化转型中的关键技术之一。• 工业物联网:监控设备状态(如温度、振动)、预测性维护。• 智慧城市:交通流量、环境监测(PM2.5、温湿度)。• 金融:高频交易数据分析、实时风险监控。

2025-05-13 06:16:32 423

原创 Clojure是啥?

Clojure由Rich Hickey于2007年设计,旨在提供一种实用的函数式语言,同时保持Lisp的表达力。Clojure是一种运行在Java虚拟机(JVM)上的现代Lisp方言,结合了函数式编程的强大功能和Java生态系统的无缝集成能力。• 内置软件事务内存(STM)、原子引用(atom)等工具,简化多线程编程。• 函数式编程:强调不可变数据结构、纯函数和高阶函数,减少副作用。• Lisp风格:语法简洁,使用括号表示代码块,支持宏和元编程。• 编译为JVM字节码,可直接调用Java类库。

2025-05-06 19:23:24 298

原创 【Qt】QUuid

QUuid是Qt框架中的一个类,用于生成和操作全局唯一标识符(Universally Unique Identifier, UUID)。否则依赖伪随机数生成器(可能降低唯一性保证)。• Windows:调用系统API生成GUID,确保唯一性。• 生成的UUID默认包含花括号,可通过参数调整格式。),确保在分布式系统中生成的ID几乎不会重复。方法判断UUID是否为空(未初始化)。• 数据库记录:作为主键避免冲突。• 文件命名:生成唯一文件名。• 网络通信:标识会话或消息。时,唯一性可能受限。

2025-05-06 11:38:12 219

原创 简介QML中的Canvas

QML中的Canvas是一个强大的绘图组件,允许开发者通过JavaScript在界面上进行动态的2D图形绘制。• 支持绘制基本图形(矩形、圆形、线条等)、文本、图像,以及像素级操作。元素,适用于实现自定义图形、动画、游戏开发以及图表绘制等场景。• 性能优化:分块渲染(瓷片系统)可提升大画布性能。)、样式控制(颜色、渐变、阴影)和合成效果。方法触发重绘,结合定时器可实现动画效果。监听用户输入,实现绘图板等交互应用。• 默认透明背景,需手动设置填充色。• 复杂动画建议使用硬件加速(如。• 提供路径操作(如。

2025-05-03 19:15:06 346

原创 为什么protobuf的使用这么广泛?

拥有丰富的开源工具和社区支持(如Swagger集成、IDE插件),而类似技术(如Cap’n Proto)因生态不足难以普及。支持20+种编程语言(如Java、Go、Python等),生成的代码可无缝跨平台通信,尤其适合微服务架构和多语言协作项目。综上,Protobuf在性能、兼容性、开发效率上的综合优势,使其成为大厂微服务、游戏、大数据等领域的首选。例如,某游戏通过切换为Protobuf后,加载时间从12秒缩短至3秒。文件可自动生成API文档和客户端代码,减少手动维护成本,提升开发效率。

2025-05-02 13:59:44 321

原创 std::unique_ptr的get方法

智能指针的成员函数,用于获取其管理的原始指针(raw pointer),但不转移所有权。• 适用场景:临时获取指针且无需转移所有权时使用。仍独占资源所有权,生命周期结束时自动释放资源。• 调试或日志:打印指针地址或检查对象状态。的生命周期覆盖对原始指针的使用。2025年4月29日,周二中午。• 禁止手动释放:不可对。是 C++ 标准库中。• 所有权不变:调用。

2025-04-29 12:59:43 168

原创 Lua中的元表

2025年4月14日,周一上午Lua中的元表(metatable)是一种特殊的表,用于定义或修改其他表(或用户数据类型)的行为。通过元表中的元方法(meta-methods),开发者可以自定义表在特定操作(如算术运算、索引访问等)时的逻辑,从而扩展Lua的功能和灵活性。

2025-04-14 08:10:42 424

原创 C2065: “M_PI_2”: 未声明的标识符

是数学库中定义的宏,表示π/2的值(约1.57079632679)。在Qt Creator或Visual Studio中,右键项目 →。,可能导致宏重复定义警告。此时只需保留一个定义即可。等)默认不暴露给用户,需通过预处理器定义。的编译环境下,这些数学常量(如。,因为某些编译器(如MSVC)的。2025年4月12日,周六上午。,以保持代码的跨平台兼容性。通过上述任一方法,均可解决。如果同时在其他地方定义了。• Microsoft的。时,编译器会忽略这些宏。(注意:需确保此定义在。在包含数学头文件(如。

2025-04-12 07:45:47 301

原创 Linux tmux快速上手

tmux 的“窗口”是独立的终端界面,而“窗格”是窗口内的分屏。若需要在一个窗口中分屏(如左右或上下布局),可使用。通过以上步骤,可以快速在 tmux 中创建多个窗口并灵活切换,适合同时处理多个任务(如开发、日志监控等)。若需自定义窗口名称(便于识别任务),在目标窗口内按。,会显示所有窗口列表,按方向键或数字键选择。,名称为当前 Shell 的默认名称)。此时会创建一个默认窗口(编号为。):直接跳转到指定编号的窗口。,确认后即可关闭当前窗口。),并自动切换到该窗口。:切换到下一个窗口。:切换到上一个窗口。

2025-04-10 07:07:21 294

原创 C++ explicit

2025年3月29日,周六下午在C++编程中,explicit关键字是用于控制类构造函数的隐式类型转换的。当构造函数只有一个参数时,可以通过explicit关键字来指定该构造函数是显式的,这样就可以防止编译器自动使用该构造函数进行隐式类型转换。

2025-03-29 17:12:03 483

原创 c++引用和指针的区别

在C++中被定义为变量的别名,它必须在创建时被初始化,并且一旦被初始化后,就不能再指向其他的对象。引用不是一个独立的对象,它没有自己的地址,而是变量的一个名字。在实际使用中,如果你需要一个变量的别名,并且不希望改变别名所指向的对象,那么应该使用引用。指针有自己的内存地址和大小(通常是4或8字节,取决于平台),它的内容是所指向变量的内存地址。引用传递可以看作是地址传递的一种安全形式,它不允许引用为空,也不允许改变引用的指向。:引用在类型上更安全,因为它们不允许隐式转换,而指针可以被转换为其他类型的指针。

2025-03-29 14:06:55 226

原创 GDI+到底是什么

系统级图形APIGDI+是Windows操作系统内置的子系统(从Windows XP开始集成),提供与设备无关的图形操作接口。开发者无需关心底层硬件差异,即可实现屏幕、打印机等设备的图形渲染。GDI的增强版相较于传统的GDI(Graphics Device Interface),GDI+新增了抗锯齿、渐变填充、Alpha通道透明度支持、路径绘图等高级功能,并优化了性能与代码易用性。跨开发框架支持在.NET生态中,GDI+通过命名空间提供托管类库(如GraphicsPenBrush。

2025-03-18 11:28:41 524

原创 通过宏实现只在debug模式下,,某行Qt代码才能执行

通过宏实现只在debug模式下,某行Qt代码才能执行,比如qDebug()<<“黑屏结束”;QT_DEBUG是Qt内置的宏,在debug模式下会定义这个宏。2025年3月15日,周六下午。

2025-03-15 14:57:22 197

原创 如何查看g++最高支持到C++的哪个版本

2025年3月13日,周四晚上要查看当前安装的g++

2025-03-13 18:10:55 848

原创 设计模式学习笔记——命令模式

可以通过“保存命令”来使用保存逻辑,而无需在每个组件中实现相同的保存逻辑。使用了命令模式把保存逻辑从三个组件中独立出来后,减少了代码冗余。且需要修改保存逻辑时,各个组件的保存逻辑都需要进行相应修改。相同的保存逻辑在各个组件中重复出现。2025年3月13日,周四下午。

2025-03-13 14:59:14 340

原创 .dll.a文件

文件是一种特殊的静态库文件,用于在 MinGW 环境中链接到动态链接库。它提供了动态链接库的链接信息,但在运行时仍然依赖于 DLL 文件。文件),但它是为 MinGW(Minimalist GNU for Windows)编译器设计的,用于链接到动态链接库(DLL)。文件来提供对动态链接库的链接信息,这样可以在编译时链接到 DLL,但在运行时仍然依赖于 DLL 的存在。文件是一种特殊的库文件,通常在 Windows 系统中使用,它结合了静态库和动态库的特点。中的函数,但在运行时程序会从系统中的。

2024-08-17 08:40:45 751 1

原创 CMake内置模块

CMake附带了一系列内置模块,这些模块提供了许多常用的功能和宏,以帮助用户在构建项目时完成各种任务。

2024-08-09 19:13:53 356

原创 const string&有什么优点

2024年6月29日,周日晚上。

2024-06-29 19:04:42 710

原创 C++中的常成员函数

总而言之,最关键的点在于“常成员函数承诺不修改调用它的对象的状态,包括其成员变量。函数,但不能调用其他非常成员函数。2024年6月29日,周日下午。是一个常成员函数,它返回。成员的值,但不会修改。

2024-06-29 18:58:02 482

原创 什么是std::bind

std::bind通常和std::function一起使用,因为std::function可以作为一个函数容器来接收std::bind生成的函数对象。因为 std::function 是一个通用包装器,它可以存储、传递和调用任何可调用目标(如普通函数、lambda 表达式、函数对象、成员函数等)。std::bind 是一个C++11标准库中的函数,它用于将一个函数或函数对象与特定的参数绑定在一起,生成一个新的函数对象。一起提供了一种灵活的方式来包装和传递可调用对象。2024年6月29日,周日下午。

2024-06-29 18:29:05 297 2

原创 【C++多线程】std::condition_variable到底是什么

结合使用,允许一个线程在某些条件成立之前挂起(等待),而另一个线程可以通知(唤醒)等待的线程。是C++11标准库中用于线程同步的一个设施,它通常与。2024年6月29日,周日下午。

2024-06-29 17:23:49 553

原创 如何用pip查看安装了哪些库?

请注意,如果你的pip版本较旧,某些命令可能不可用。pip的更新版本通常会引入新的功能和改进。的文件中,这个文件可以用来在其他环境中重现相同的依赖关系。这些命令将帮助你在命令行中管理和管理你的Python包。这会将所有已安装的库和它们的版本信息保存到一个名为。这会列出pip的所有配置选项。2024年6月2日,周日上午。是你想要查询的库的名称。

2024-06-02 08:52:54 2082 1

原创 Python中的虚拟环境

2024年6月2日,周日上午在Python开发中,虚拟环境(Virtual Environment)是一个重要的工具,,以避免不同项目之间的依赖冲突。以下是关于Python虚拟环境的详细介绍,包括其重要性、创建和管理的方法。

2024-06-02 08:44:06 487

原创 什么是Axios

Axios 是一个基于Promise的HTTP客户端,用于浏览器和node.js环境。它提供了一个简单易用的API来发送HTTP请求,并支持Promise API,这使得异步请求变得容易处理。Axios 是一个流行的HTTP客户端,广泛用于前端和后端开发,因为它提供了丰富的功能和良好的文档支持。2024年5月23日,周四上午。

2024-05-23 11:03:16 720

原创 什么是DBeaver

DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持多种数据库系统,包括关系型数据库和 NoSQL 数据库。它是一个开源软件,适用于开发人员和数据库管理员。DBeaver 提供了一系列的功能,如数据库结构查看、SQL 查询执行、数据浏览和导出、数据库模式迁移等。DBeaver 是一个功能强大的数据库管理和开发工具,适合各种级别的用户,从初学者到专业开发人员。2024年5月23日,周四上午。

2024-05-23 10:38:13 2320

原创 我认为最好的免费在线抠图网站

消除或者替换图像背景,无需上传图像 - BgSub。2024年5月22日,周三晚上。

2024-05-22 22:13:59 314

原创 什么是Restful API风格设计和Open API接口文档开发

RESTful API(Representational State Transfer API)是一种设计Web服务的风格,它基于REST原则。它定义了一个JSON或YAML格式,用于描述API的功能、请求、响应、参数、安全性等信息。OpenAPI文档可以使用各种工具生成,例如Swagger UI、Postman等,这些工具可以帮助开发者测试API和生成客户端代码。RESTful API设计旨在创建灵活、可扩展的Web服务,它允许客户端以多种格式(如JSON、XML等)获取和操作资源。

2024-05-22 16:49:50 391

原创 JavaScript(JS)和TypeScript(TS)之间有什么区别

总的来说,TypeScript是JavaScript的一个超集,它为JavaScript增加了类型系统和其他一些特性,这些特性可以帮助开发者编写更健壮、更易于维护的代码。然而,JavaScript仍然是Web开发的事实标准,并且大多数现代浏览器都支持最新的JavaScript特性。2024年5月22日,周三下午。

2024-05-22 15:51:58 296

原创 GLIBC有什么用?

GLIBC(GNU C Library)是 GNU 项目的一部分,它是 Linux 操作系统中的标准 C 库实现。C 库为 C 语言程序提供了一系列基本的函数和系统调用,这些函数和调用涵盖了文件操作、进程控制、内存管理、字符串处理、数学运算等多个方面。由于 GLIBC 在 Linux 系统中的核心地位,任何使用 C 语言编写的程序都依赖于 GLIBC 提供的功能和接口。因此,GLIBC 的稳定性和安全性对于整个 Linux 生态系统来说至关重要。2024年5月17日,周五晚上。

2024-05-17 19:58:57 721

原创 为什么GLIBC如此重要?

由于这些原因,GLIBC 对于 Linux 系统的稳定运行、软件开发和跨平台兼容性都至关重要。它是 Linux 生态系统中不可或缺的一部分。2024年5月17日,周五晚上。

2024-05-17 19:56:43 352

sqlite-amalgamation-3410200.zip (免积分)

官方下载页面:https://www.sqlite.org/download.html 此压缩包内含SQLite的C语言源码,有如下文件: 1、shell.c 2、sqlite3.c 3、sqlite.h 4、sqlite3ext.h 官网下载比较慢,所以我上传到这。 祝大家下载愉快。

2023-04-08

SQLite下载 免积分 Windows平台 64位

官网下载 : https://www.sqlite.org/download.html 内包含两个压缩包: sqlite-dll-win64-x64-3410200 sqlite-tools-win32-x86-3410200 官网下载速度太慢了,所以我在官网下载后发布了出来,以提高大家的下载速度。 祝大家下载愉快。 附SQLite安装和使用教程: https://blog.csdn.net/GoodburghCottage/article/details/123771276?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168049813516800211549024%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168049813516800211549024&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaid

2023-04-03

Windows平台 C++ Boost 1.81.0下载

平台:Windows 文件名:boost_1_81_0.zip 官方网站:https://www.boost.org/ 官方下载地址:https://www.boost.org/users/download/ 使用教程:https://blog.csdn.net/doubleintfloat/article/details/123061700 其他说明:因为在官网下载非常慢,所以我从官网下载完后上传到了CSDN,以便大家可以快速下载。最后祝大家下载愉快。

2023-03-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除