C++
文章平均质量分 87
旅之灵夫
【授人以渔】
【要站在巨人的肩上】
【没有做不到,只有想不到】
【人的脑子是一个有限的空间,所以必须选择性的吸收知识,而不能把什么东西都放进去。--柯南·道尔】
展开
-
【GitHub项目推荐--C++ 实现 180 多个算法和数据结构】【转载】
C++ 实现 180 多个算法和数据结构下载下来,可以学习。中国互联网公司本质上是广告公司,赚取整个经济的钱。和软件公司不一样,软件公司卖软件。凭本事吃饭,在中国凭本事吃饭都要饿死的。所以搞技术一定要进互联网公司。互联网公司才能给出百万年薪,才有高深技术的实验场景。对于IT专业的学生来说,提高算法能力是非常重要的,因为算法是计算机科学的核心组成部分,并且在互联网公司中尤其受到重视。原创 2024-03-13 21:20:51 · 1061 阅读 · 0 评论 -
【GitHub项目推荐--C++编写的时间序列可视化工具】【转载】
例如,在风力发电中,时间序列可以记录风速、风向、发电机输出等随时间的变化情况,通过分析这些时间序列数据,可以预测风力发电的输出,优化能源分配和调度。在自动驾驶中,时间序列则可以记录车辆的速度、位置、方向等随时间的变化,通过分析这些数据,可以预测车辆的行驶轨迹,提高自动驾驶系统的安全性和稳定性。综上所述,PlotJuggler适用于机器人、自动驾驶、数据分析等多个领域,为开发者提供了一个快速、强大且直观的时间序列可视化工具,帮助他们更好地理解和分析数据,优化系统性能。处理时间序列的方法主要包括以下几种:。原创 2024-03-09 21:24:16 · 811 阅读 · 0 评论 -
【GitHub项目推荐--多物理场仿真】【转载】
SU2 是一套用 C++ 编写的开源软件工具,用于偏微分方程 (PDE) 的数值求解和执行 PDE 约束优化。主要应用是计算流体动力学和空气动力学形状优化,但已扩展到处理更一般的方程,例如电动力学和化学反应流。您可以在以下位置找到更多信息和最新消息:SU2主页:https: //su2code.github.ioGitHub 存储库:https://github.com/su2code差价合约在线:http: //www.cfd-online.com/Forums/su2/原创 2024-03-07 22:09:26 · 787 阅读 · 0 评论 -
【GitHub项目推荐--开源!C++编写的流体模拟的库】【转载】
该库中的模拟基于平滑粒子流体动力学 (SPH) 方法,该方法是一种流行的无网格拉格朗日方法,用于模拟复杂的流体效应。除了不可压缩性外,该库还提供了多种模拟流体其他属性的方法,包括粘度(流体内部的摩擦阻力)、表面张力(流体表面分子之间的相互吸引力)和涡度(流体旋转或旋涡的程度)。航空航天工程:在飞机、火箭和其他航空器的设计中,流体力学模拟用于研究气流对飞行器的影响,以优化其形状和性能,从而提高飞行效率和安全性。气候与气象研究:通过模拟大气和海洋的流动,流体力学模拟在气候和气象研究中也有重要应用。原创 2024-03-05 19:36:37 · 842 阅读 · 0 评论 -
【GitHub项目推荐--任天堂 Switch 模拟器开源!C++杰作】【转载】
随着技术的不断进步和社区的不断壮大,我们可以期待 yuzu 模拟器在未来能够实现更高的兼容性、更流畅的性能以及更多新功能的加入。销量与市场份额:任天堂Switch的销量已经累计达到了一个非常可观的数字,不仅在游戏硬件销量榜上位居前列,还成功打破了之前由索尼PS2和任天堂NDS等创造的销售记录。同时,任天堂也在积极开拓新的游戏类型和玩法,为玩家带来新鲜的游戏体验。综上所述,任天堂Switch在游戏产业中产生了巨大的影响力,它不仅推动了游戏硬件和游戏内容的发展,还为玩家带来了全新的游戏体验。原创 2024-03-05 19:25:24 · 697 阅读 · 0 评论 -
【GitHub项目推荐--任天堂 3DS 模拟器 开源! C++编写】【转载】
性能优化:Citra的开发者们一直在努力优化模拟器的性能,以便在各种不同的硬件上都能提供流畅的游戏体验。并发编程:模拟器需要高效地利用多核处理器,因此Citra的代码中可能包含多线程和并发编程的实例,这是现代C++程序员需要掌握的重要技能。游戏开发:对游戏开发感兴趣的C++程序员可以通过研究Citra来了解游戏是如何在底层运行的,甚至可以将学到的知识应用到自己的游戏项目中。模拟器开发:参与Citra的开发可能是进入更广泛的模拟器开发领域的敲门砖,这可以成为一个有趣且富有挑战性的长期爱好或职业道路。原创 2024-03-05 19:15:31 · 882 阅读 · 0 评论 -
【GitHub项目推荐--C++各种算法的开源实现!】【转载】
该存储库是用 C++ 实现并根据MIT License获得许可的各种算法的开源实现的集合。算法下载:这些算法涵盖计算机科学、数学和统计学、数据科学、机器学习、工程等各种主题。其实现和相关文档旨在为教育工作者和学生提供学习资源。因此,人们可能会发现针对同一目标的不止一种实现,但使用不同的算法策略和优化。原创 2024-03-04 15:23:03 · 1316 阅读 · 0 评论 -
【智能指针-使用、避坑和实现】【转载】
智能指针的出现,能够使得开发者不需要关心内存的释放,进而使得开发者能够将更多的精力投入到业务上。但是,因为智能指针本身也有其局限性,如果使用不当,会造成意想不到的后果,所以,在使用之前,需要做一些必要的检查,为了更好地用好智能指针,建议看下源码实现,还是比较简单的😁。好了,今天的文章就到这,我们下期见。原创 2024-03-04 14:28:09 · 915 阅读 · 0 评论 -
【GitHub 1万2千星:现代 C++ 工具包,包含机器学习算法和工具】【转载】
Dlib 是一个现代化的 C++11 工具包,专注于为机器学习、计算机视觉、数值优化和深度学习提供高效且实用的算法和工具。源代码Dlib 是一个现代化的 C++11 工具包,专注于为机器学习、计算机视觉、数值优化和深度学习提供高效且实用的算法和工具。它设计得既易于使用又功能强大,适合从初学者到专家的各种用户。以下是 Dlib 提供的一些主要功能和特点:机器学习:Dlib 提供了一系列广泛的机器学习算法,包括分类、回归、聚类和降维等。原创 2024-03-03 09:09:02 · 849 阅读 · 0 评论 -
【C++ 虚函数表剖析】【转载】
为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。封装,继承,多态是面向对象设计的三个特征,而多态可以说是面向对象设计的关键。C++通过虚函数表,实现了虚函数与对象的动态绑定,从而构建了C++面向对象程序设计的基石。原创 2024-02-28 22:36:09 · 817 阅读 · 0 评论 -
【现代 C++ 测试工具链(是时候抛弃 gtest/google bench 了)】【转载】
用现代C++测试工具链:doctest+FakeIt+nanobench, 可以完美地替代gtest/gmock和google bench,没有任何依赖,无需安装,直接包含头文件就可以用,非常容易集成和使用,是时候抛弃google test和google bench了!来源:www.purecpp.org现代 C++ 测试工具链(是时候抛弃 gtest/google bench 了)原创 2024-02-28 22:24:57 · 927 阅读 · 0 评论 -
【GitHub项目推荐--不错的 C++开源项目】【转载】
C++ 那些事这是一个适合初学者从入门到进阶的仓库,解决了面试者与学习者想要深入 C++及如何入坑 C++的问题。除此之外,本仓库拓展了更加深入的源码分析,多线程并发等的知识,是一个比较全面的 C++ 学习从入门到进阶提升的仓库。项目地址:https://github.com/Light-City/CPlusPlusThings。原创 2024-01-23 21:15:53 · 1083 阅读 · 0 评论 -
【如何设计结构体】【转载】
如果数据成员相对于结构体或类开头的偏移量小于128,则访问数据成员的代码会更加紧凑,因为该偏移量可以使用8位有符号的数字来表示。因此,建议在结构或类声明中,大数组和其他大对象排在最后,最常用的数据成员排在前面。然而,这个声明的顺序也是有学问的,顺序不同结构体的大小可能有很大差别,数据成员的访问性能也可能会有很大区别!这样做的原因是,数组中S的下一个实例必须从一个能被8整除的地址开始,以便将其b成员以8对齐。128是个槛,常用的数据成员可考虑放在前128字节中,不常用的或大的数据成员可考虑放在后面;原创 2024-02-25 17:02:15 · 784 阅读 · 0 评论 -
【C++ 程序内存泄漏检测方法】【转载】
在Linux平台上有valgrind可以非常方便的帮助我们定位内存泄漏,因为Linux在开发领域的使用场景大多是跑服务器,再加上它的开源属性,相对而言,处理问题容易形成“统一”的标准。以上方法,我将后续的博客中逐一详细介绍,文中提到到detours库和LeakDiag工具,想了解的朋友,可以上codeprojet上搜索下相关介绍,如果要上google查找资料,也可以上这里。缺点:侵入式方法,需将头文件加入到大量源文件的头部,以确保重载的宏能够覆盖所有的new/delete。但是不会占用目标进程的自身内存。原创 2024-02-24 22:35:41 · 899 阅读 · 0 评论 -
【微软Debug CRT库是如何追踪C++内存泄露的?】【转载】
简单总结下,微软Debug CRT库的实现,完全可以在项目中自己实现。就是通过在申请的内存头部记录当前分配内存的相关信息,比如文件名和行号,并且通过双向链表将所有申请的节点串起来。然后在合适的时间点(比如感知到内存泄露的情况下)打印出可能的内存泄露的内存关联的信息。这种做法简单,但只针对小型的项目,适合采用这种方法,而且对于第三方库的内存泄露无法进行检测。本文旨在通过分析微软Debug CRT库的实现的检测内存泄露的方式,从而阐述自我实现简易C++内存泄露检测的思想。原创 2024-02-24 22:33:40 · 952 阅读 · 0 评论 -
【手写线程池 - C 语言版】【转载】
/ 线程池结构体// 任务队列// 容量// 当前任务个数// 队头 -> 取数据// 队尾 -> 放数据// 管理者线程ID// 工作的线程IDint minNum;// 最小线程数量int maxNum;// 最大线程数量// 忙的线程的个数// 存活的线程的个数// 要销毁的线程个数// 锁整个的线程池// 锁busyNum变量// 任务队列是不是满了// 任务队列是不是空了// 是不是要销毁线程池, 销毁为1, 不销毁为0dobreak;原创 2024-02-21 22:02:25 · 766 阅读 · 0 评论 -
【C++ std::thread说明】【转载】
C++11 之前,C++ 语言没有对并发编程提供语言级别的支持,这使得我们在编写可移植的并发程序时,存在诸多的不便。现在 C++11 中增加了线程以及线程相关的类,很方便地支持了并发编程,使得编写的多线程程序的可移植性得到了很大的提高。C++11 中提供的线程类叫做,基于这个类创建一个新的线程非常的简单,只需要提供线程函数或者函数对象即可,并且可以同时指定线程函数的参数。原创 2024-02-21 21:36:17 · 910 阅读 · 0 评论 -
【提升 C++ 开发效率的几个小技巧】【转载】
我们说的 Modern C++,一般指的是 C++11 及以后的标准,从 C++ 11 开始,Modern C++ 引入了大量的实用的特性,主要是两大方面,学习的时候也可以从这两大方面学习:增强或者改善的语法特性;新增的或者改善的 STL 库。原创 2024-02-20 22:44:13 · 703 阅读 · 0 评论 -
【C++ 线程安全的单例模式】【转载】
代码如下:。但是不同的编译器表现是不一样的。线程B执行到语句1,判断instance_此时不为空,则返回该变量,然后调用该对象的函数,但是该对象还没有进行构造。但是语句1是一个读操作,if (instance_ == nullptr),这个语句是用来读取instance_这个变量,而这个读操作是没有锁的。实现代码如下:。代码实现:。使用饿汉模式实现单例是十分简单的,并且有效避免了线程安全问题,因为将该单例对象定义为static变量,程序启动即将其构造完成了。原创 2024-02-20 22:43:01 · 797 阅读 · 0 评论 -
【编写可移植 C/C++ 程序的一些要点】【转载】
这一点是建立在分层设计之上的,大多数底层函数,像线程、同步机制和IPC机制等等,不同平台提供的函数,几乎是一一对应的,封装这些函数很简单,实现Adapter的工作几乎只是体力活。然而,对于一些比较特殊的应用,如图形组件本身,就拿GTK+来说吧,基于X Window的功能和基于Win32的功能,两者差巨大,除了窗口、事件等基本概念外,几乎没有什么相同的,如果不事先了解各个平台的特性,在设计时就精心考虑的话,抽象出来的抽口在另外一个平台几乎无法实现。这些貌合神离的东东,端的是神出鬼没,一不小心着了它的道。原创 2024-02-20 22:33:32 · 763 阅读 · 0 评论 -
【C/C++ 学习路线】【转载】
前言于我而言,最开始学习就是,除了计算机专业,其他专业可能学习的第一门编程语言为语言,还是谭浩强爷爷那本,当时想着有点基础,无外乎就是语言的升级版,于是开启了的路程。语言这个东西,可能过后你会发现,它真就一工具,你如果想做个爬虫或者数据分析,那多半会选择,无论是接口还是开源社区都非常的完善,如果想做一个快速迭代的项目,也可以选择的框架或者 Java的框架快速完成开发,如果是内核驱动,那老老实实的用大哥 C,如果玩儿数据库,搜索引擎就整 C++,如果是分布式或者那一套,自然就是。原创 2024-02-20 22:27:09 · 814 阅读 · 0 评论 -
【C++:折叠表达式】【转载】
上面的示例中都是与逗号运算符结合使用,但实际上折叠可以和任何类型的运算符结合使用。它会针对可变参数中的每个参数调用print(),对print()的每个调用用逗号分隔。长度为0其实也可以使用折叠表达式,但不能和加减这种运算符结合使用,只能和逻辑与、逻辑或和逗号结合使用。我也是最近才知道这个知识点,在C++中通过折叠表达式可以更容易的在可变参数模板中处理可变参数。注意看代码里还需要有个不带参数的func()来停止递归。关于折叠表达式的介绍就到这里,打完收工!不知道大家以前了解折叠表达式不,这里介绍一下!原创 2024-02-20 21:46:47 · 387 阅读 · 0 评论 -
【免费 C++ 资源】【转载】
地址:http://web.archive.org/web/20060424103805/cplus.about.com/od/beginnerctutorial/l/blcplustut.htm。地址:https://www.ibm.com/us-en/marketplace/ibm-c-and-c-plus-plus-compiler-family。地址:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2597.html。原创 2024-02-20 21:44:33 · 728 阅读 · 0 评论 -
【C++ 后台开发知识点及学习路线】【转载】
所以对于C++后台开发岗而言,对C++/Linux的充分熟悉以及扎实的计算机基础和有相关的学习经历,就已经能够满足各大公司的要求了。相对来说,C++的学习成本较高,语言里面的坑较多。对于普通人而言,算法的学习最重要的是能够形成基本的算法思维,懂得从程序设计的角度对高重复性的操作做优化。排序算法(冒泡、插入、选择、快排、希尔、堆排、归并、桶排、基数、计数)、字符串操作、数组操作、递归、回溯、分治、动态规划等。链表、栈、队列、树(二叉树、平衡二叉树、红黑树、B树、B+树、哈夫曼树、字典树)、跳表、图。原创 2024-02-20 21:36:11 · 1092 阅读 · 0 评论 -
【C++:2 万字+20 图带你手撕 STL 容器源码】【转载】
源码之前,了无秘密。在 STL 编程中,容器是我们经常会用到的一种数据结构,容器分为序列式容器和关联式容器。序列式容器是通过元素在容器中的位置顺序存储和访问元素,而关联容器则是通过键 (key) 存储和读取元素。本篇着重剖析序列式容器相关背后的知识点。到这里呢,vector 分析的就差不多了,最后提醒需要注意的是:vector 的成员函数都不做边界检查 (at方法会抛异常),使用者要自己确保迭代器和索引值的合法性。我们来总结一下 vector 的优缺点。优点。原创 2024-02-20 21:29:48 · 855 阅读 · 0 评论 -
【C++左值、右值、左值引用、右值引用】【转载】
右值引用将左值与右值区分开来。它们可以帮助您通过消除不必要的内存分配和复制操作来提高应用程序的性能。它们还使您能够编写接受任意参数的函数的一个版本,并将其转发给另一个函数,就好像直接调用了另一个函数一样左值、右值、左值引用、右值引用。原创 2024-02-20 20:57:32 · 814 阅读 · 0 评论 -
【C++ 智能指针用法详解】【转载】
可以看到fun函数中pa ,pb之间互相引用,两个资源的引用计数为2,当要跳出函数时,智能指针pa,pb析构时两个资源引用计数会减一,但是两者引用计数还是为1,导致跳出函数时资源没有被释放(A B的析构函数没有被调用),如果把其中一个改为weak_ptr就可以了,我们把类A里面的shared_ptr<B> pb_;运行结果如下,这样的话,资源B的引用开始就只有1,当pb析构时,B的计数变为0,B得到释放,B释放的同时也会使A的计数减一,同时pa析构时使A的计数减一,那么A的计数为0,A得到释放。原创 2024-02-20 20:13:07 · 839 阅读 · 0 评论 -
【做引擎开发,更需要深入 C++ 内存管理】【转载】
ue4的内存管理主要是通过FMalloc类型的GMalloc这一结构来完成特定的需求,这是一个虚基类,它定义了malloc,realloc,free等一系列常用的内存管理操作。其中,Malloc的两个参数分别是分配内存的大小和对应的对齐量,默认对齐量为0。原创 2024-02-20 20:09:50 · 813 阅读 · 0 评论 -
【C++ 如何避免内存泄露】【转载】
这里需要强调一下,Coroutine 确实会带来一定的性能开销,通常 Coroutine 切换的开销在 20ns 以内,然而我们依然在对性能要求很苛刻的场景使用 Coroutine,一方面是因为 20ns 的性能开销是相对很小的,另一方面是因为 Coroutine 极大的降低了异步编程的复杂度,降低了内存泄露的可能性,使得编写异步程序像编写同步程序一样简单,降低了程序员心智的开销。这样一来,我们就可以完全抛弃在堆上申请内存,只是用栈上的内存,就可以完成请求的处理,完全不用考虑内存泄露的问题。原创 2024-02-19 21:28:33 · 743 阅读 · 0 评论 -
【C语言与C++面试知识总结】【转载】
方法:将析构函数设置为私有原因:C++ 是静态绑定语言,编译器管理栈上对象的生命周期,编译器在为类对象分配栈空间时,会先检查类的析构函数的访问性。若析构函数不可访问,则不能在栈上创建对象。原创 2024-02-19 21:24:25 · 833 阅读 · 0 评论 -
【如何编写 C++ 游戏引擎】【转载】
最近我在用 C++ 写游戏引擎,再用这个引擎做了一个移动端小游戏跳一跳(Hop Out)。跳一跳是我想玩的游戏类型:3D卡通外观的复古街机游戏。目标是改变每个填充块的颜色,就像Q * Bert一样。Hop Out仍在开发中,但引擎的功能已经很完善了,所以我想在这里分享一些关于引擎开发的技巧。你为什么想要写一个游戏引擎?可能有很多原因:你是个修理工,喜欢从头开始建立系统,直到系统完成。关于游戏开发你想了解更多。我在游戏行业工作了14年,现在我仍然在不停的琢磨。原创 2024-02-18 21:44:25 · 1005 阅读 · 1 评论 -
【开源好书学习 C++】【转载】
作者 艾伦·尤斯特(Paul Ezust), 656页本书首先介绍C++基本组成,面向对象的概念,UML(统一建模语言)和核心Qt类。进而转向更高层次的编程思想,Qt模型和设计模式。最后一部分严谨地印证了C++的重要特性,完整地覆盖了函数,继承和多态性方面的内容。该书旨在用于大学课程,面向没有C或C ++编程经验的读者,还为教学工作者提供了Qt示例,练习,解决方案和授课幻灯片。这本书是Bruce Perens开源系列的一部分。原创 2024-02-18 20:11:38 · 824 阅读 · 0 评论 -
【C++调用Go方法的字符串传递问题及解决方案】【转载】
3. go build -buildmode=c-shared .生成的.h头文件中定义了C++中Go的变量类型的定义映射关系,比如GoString、GoInt等。在一个APP技术项目中,子进程按请求加载Go的ServiceModule,将需要拉起的ServiceModule信息传递给Go的Loader,存在C++调用Go方法,传递字符串的场景。在C++代码中,任何对成员p的char*指针的操作,都将直接影响到Go中的string对象的值。程序执行结果:。Go侧代码:。原创 2024-02-16 10:14:51 · 360 阅读 · 0 评论 -
【C/C++ 基础栈溢出及保护机制】【转载】
以下是正文引言");\n", name);return 0;也许这段小程序给你带来了小小的成就感,也许直到课程结束也没人说这个程序有什么不对,也许你的老师在第一时间就指出这段代码存在栈溢出的漏洞,也许你后来又看到无数的文章指出这个问题同时强调千万要慎用scanf函数,也许你还知道stackoverflow是最好的程序员网站。但可能从来没有人告诉你,什么是栈溢出、栈溢出有什么危害、黑客们可以利用栈溢出来进行什么样的攻击,还有你最想知道的,他们是如何利用栈溢出来实现攻击的,以及如何防护他们的攻击。原创 2024-02-16 09:50:17 · 993 阅读 · 0 评论 -
【C++11实现的100行线程池】【转载】
我来讲讲人话:你的函数需要在多线程中运行,但是你又不能每来一个函数就开启一个线程,所以你就需要固定的N个线程来跑执行,但是有的线程还没有执行完,有的又在空闲,如何分配任务呢,你就需要封装一个线程池来完成这些操作,有了线程池这层封装,你就只需要告诉它开启几个线程,然后直接塞任务就行了,然后通过一定的机制获取执行结果。精打细算的风格像极了抠门的地主,i了i了。我估计它的stop会有唤醒所有线程的操作,不过如果有的在执行,有的在等待,应该没办法都通知到位,但是在执行的在下一次判断的时候也能正常退出。原创 2024-02-16 09:39:21 · 880 阅读 · 0 评论 -
【C++ 二叉树操作详解】【转载】
在后续遍历得到的序列中,最后一个元素为树的根结点。1. 1->2->4->6->7,7 无左孩子,也无右孩子,输出 7,此时 6 无左孩子,而 6 的右子树也全部输出,输出 6,此时 4 无左子树,而 4 的右子树已全部输出,接着输出 4,此时 2 的左子树全部输出,且 2 无右子树,输出 2,此时 1 的左子树全部输出,接着转向右子树;3. 7 的左孩子为空,输出 7,右孩子也为空,此时 2 的左子树全部输出,输出 2,2 的右孩子为空,此时 1 的左子树全部输出,输出 1,接着 1 的右孩子;原创 2024-02-16 09:28:40 · 830 阅读 · 0 评论 -
【C++ 堆栈工作机制】【转载】
我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数的调用顺序;函数调用时传递参数,事实上是把参数压入堆栈,听起来,堆栈象一个大杂烩。那么,堆栈(Stack)到底是如何工作的呢?本文将详解C/C++堆栈的工作机制。阅读时请注意以下几点:1)本文讨论的编译环境是 Visual C/C++,由于高级语言的堆栈工作机制大致相同,因此对其他编译环境或高级语言如C#也有意义。原创 2024-02-15 22:48:00 · 866 阅读 · 0 评论 -
【C++在嵌入式中表现如何?】【转载】
在单片机领域C++不太流行既有历史原因,也有工业界的需求,对于单片机是从51发展到现在,主流的flash容量仍然在64KB~256KB左右,目前的容量限制注定了C++中的模板,泛型编程和STL等很难被运用到开发中,但如果不使用这些,只使用支持class的C++,在C语言是有结构体+函数指针可以替代的情况下,从C换成C++并没有迫切的需求,而python和js的推广困难,也有着类似的理由,此外在加上调试困难。另外,模板,STL对调试非常不友好,不太适合运行成本(步骤)相对复杂的嵌入式、单片机开发环境。原创 2024-02-15 22:26:07 · 848 阅读 · 0 评论 -
【C/C++区分linux和windows环境的宏】【转载】
请注意,这只是一种常见的方法,并且可能还有其他方法来区分不同操作系统的宏定义,具体取决于编译器和操作系统环境。你可以通过检查这些宏的定义情况来进行平台特定的编译代码。原创 2024-01-23 16:48:14 · 743 阅读 · 0 评论 -
C++面试宝典(0)
【代码】C++面试宝典(0)原创 2023-05-21 22:33:50 · 49 阅读 · 0 评论