自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C 语言之泛型编程

泛型编程是一种编程范式,旨在编写与特定数据类型无关的代码,从而提高代码的复用性和灵活性。在 C++ 中,模板提供了直接支持泛型编程的语法。而在 C 中,C11 标准的新特性使我们能够实现类似的功能。C11 标准的新特性,特别是 _Generic 关键字,使得在 C 语言中实现泛型编程变得更加容易。通过结合使用宏定义、void* 和 _Generic,我们可以编写出与特定数据类型无关的代码,从而提高代码的复用性和灵活性。希望这篇博客能帮助您理解如何在 C11 中实现泛型编程。

2024-06-16 18:49:02 473

原创 C 语言之面向对象编程

面向对象编程是一种编程范式,它通过“类”和“对象”来组织代码。类(Class):一种数据结构,用于定义对象的属性和行为。对象(Object):类的实例。继承(Inheritance):一个类可以继承另一个类的属性和行为。多态(Polymorphism):不同类的对象可以通过相同的接口调用不同的方法。虽然 C 语言不是面向对象的编程语言,但通过使用结构体、函数指针和一些编程技巧,我们可以在 C 中实现面向对象编程的概念。通过以上示例,我们展示了如何在 C 中模拟类、对象、继承和多态性。

2024-06-16 18:34:02 300

原创 C 语言之分支预测优化

分支预测是处理器在遇到条件分支指令(如 if-else 语句)时,预先猜测分支方向的一种机制。处理器通过预测分支的执行路径,可以减少流水线的停顿,提升指令执行效率。如果预测正确,指令流水线能够连续执行;如果预测错误,则需要清空流水线并重新加载指令,导致性能损失。分支预测的影响因素分支方向:处理器更擅长预测某些方向的分支,如“往前跳转”或“往后跳转”。分支历史:现代处理器使用历史信息来预测分支,如二级分支预测器。分支频率:高频分支预测错误的代价更大。

2024-06-13 16:26:44 268

原创 C 语言之 Duff’s Device

Duff's device 是一种优化循环展开技术,用于提高数据复制或处理的效率。由 Tom Duff 在 1983 年提出,主要通过将循环展开和 switch-case 语句结合,减少循环控制的开销。

2024-06-13 15:54:31 389

转载 深入浅出Presto:PB级OLAP引擎

深入浅出Presto:PB级OLAP引擎

2021-06-28 17:57:11 162

原创 Java 自动向量化

1. 简介1.1 SIMD通常,程序的代码是串行执行的。这意味着单个命令或语句按顺序执行,一个接一个。以算术为重点的程序是对数字进行大量计算的程序。通常,这些程序处理大量数据,并且许多信息以相同的方式一个接一个地处理。例如。对于 1000 个粒子的模拟,模拟中将有一个步骤,用其当前速度 v 更新每个粒子的位置 s:s = s + v。这必须对每个粒子完成,即对粒子数组 s [0] 到 s[999]。如果您可以将几个粒子组合成一个批次并一次性处理该批次,则可以加快速度。对于上面的示例和一组 4 个粒子,

2021-06-22 15:48:15 1332

原创 C语言中 typedef常用方法

typedef 的作用是给已知的数据类型命名别名,因为有时使用别名更方便,语义更清晰。1. 复杂的数据类型名称简化 typedef 的典型应用就是可以用一个较为简短的别名去表示一个复杂数据类型 。例如,如果程序需要一个如下形式的函数指针类型void (*)(int, int); 并且程序中还需要定义较多这种类型的指针变量,那么每定义一个变量就写一遍这个类型,不仅麻烦而...

2018-07-14 12:12:20 4224

原创 C 语言实现智能指针

attribute((cleanup(f)) 是 GCC 提供的一个强大特性,可以显著简化 C 语言中的资源管理工作。通过定义清理函数并修饰变量,我们可以确保在变量的作用域结束时自动执行清理操作,减少资源泄漏的风险。这一特性在内存管理、文件操作和多线程编程等场景中都具有广泛的应用价值。

2017-11-21 09:23:17 3725 2

原创 Windows 安装 Gitblit

Gitblit 是一个纯 Java 库用来管理、查看和处理 Git 资料库.相当于 Git 的 Java 管理工具.git的管家。官网:http://gitblit.com/1、安装前准备JAVA JDK 安装配置参考:JDK安装与环境变量配置2、下载 Gitblib 进入官网点击图中的位置下载 3、将起解压到目录 E:/Git/ (安装目录)下 图中 Repository 目录用

2017-04-13 17:45:57 399

原创 Proteus 8.1 51单片机仿真双人对战五子棋

黑白双方循环落子,黑方先下,通过上下左右四个按键选择落子位置,按下确定按键即可将棋子放置在棋盘上。当有一方连成5子或棋盘落满棋子,游戏结束,判定双方胜负。按下悔棋按键可以悔棋,每按一次可以悔棋一步,可以无限悔棋,按下重新开始按键,游戏重新开始。内存需求较大,51单片机无法满足,因此需要扩展内存。Proteus需添加240X320的彩色液晶。1、通过按键选择下棋位置。

2016-11-17 14:30:39 3556 9

Proteus 8.1 51单片机仿真双人对战五子棋

Proteus 8.1 51单片机仿真双人对战五子棋

2024-06-15

空空如也

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

TA关注的人

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