![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 68
quintin-lee
这个作者很懒,什么都没留下…
展开
-
Proteus 8.1 51单片机仿真双人对战五子棋
黑白双方循环落子,黑方先下,通过上下左右四个按键选择落子位置,按下确定按键即可将棋子放置在棋盘上。当有一方连成5子或棋盘落满棋子,游戏结束,判定双方胜负。按下悔棋按键可以悔棋,每按一次可以悔棋一步,可以无限悔棋,按下重新开始按键,游戏重新开始。内存需求较大,51单片机无法满足,因此需要扩展内存。Proteus需添加240X320的彩色液晶。1、通过按键选择下棋位置。原创 2016-11-17 14:30:39 · 3556 阅读 · 9 评论 -
C 语言之泛型编程
泛型编程是一种编程范式,旨在编写与特定数据类型无关的代码,从而提高代码的复用性和灵活性。在 C++ 中,模板提供了直接支持泛型编程的语法。而在 C 中,C11 标准的新特性使我们能够实现类似的功能。C11 标准的新特性,特别是 _Generic 关键字,使得在 C 语言中实现泛型编程变得更加容易。通过结合使用宏定义、void* 和 _Generic,我们可以编写出与特定数据类型无关的代码,从而提高代码的复用性和灵活性。希望这篇博客能帮助您理解如何在 C11 中实现泛型编程。原创 2024-06-16 18:49:02 · 473 阅读 · 0 评论 -
C 语言之面向对象编程
面向对象编程是一种编程范式,它通过“类”和“对象”来组织代码。类(Class):一种数据结构,用于定义对象的属性和行为。对象(Object):类的实例。继承(Inheritance):一个类可以继承另一个类的属性和行为。多态(Polymorphism):不同类的对象可以通过相同的接口调用不同的方法。虽然 C 语言不是面向对象的编程语言,但通过使用结构体、函数指针和一些编程技巧,我们可以在 C 中实现面向对象编程的概念。通过以上示例,我们展示了如何在 C 中模拟类、对象、继承和多态性。原创 2024-06-16 18:34:02 · 300 阅读 · 0 评论 -
C 语言之分支预测优化
分支预测是处理器在遇到条件分支指令(如 if-else 语句)时,预先猜测分支方向的一种机制。处理器通过预测分支的执行路径,可以减少流水线的停顿,提升指令执行效率。如果预测正确,指令流水线能够连续执行;如果预测错误,则需要清空流水线并重新加载指令,导致性能损失。分支预测的影响因素分支方向:处理器更擅长预测某些方向的分支,如“往前跳转”或“往后跳转”。分支历史:现代处理器使用历史信息来预测分支,如二级分支预测器。分支频率:高频分支预测错误的代价更大。原创 2024-06-13 16:26:44 · 267 阅读 · 0 评论 -
C 语言之 Duff’s Device
Duff's device 是一种优化循环展开技术,用于提高数据复制或处理的效率。由 Tom Duff 在 1983 年提出,主要通过将循环展开和 switch-case 语句结合,减少循环控制的开销。原创 2024-06-13 15:54:31 · 389 阅读 · 0 评论 -
C 语言实现智能指针
attribute((cleanup(f)) 是 GCC 提供的一个强大特性,可以显著简化 C 语言中的资源管理工作。通过定义清理函数并修饰变量,我们可以确保在变量的作用域结束时自动执行清理操作,减少资源泄漏的风险。这一特性在内存管理、文件操作和多线程编程等场景中都具有广泛的应用价值。原创 2017-11-21 09:23:17 · 3723 阅读 · 2 评论 -
C语言中 typedef常用方法
typedef 的作用是给已知的数据类型命名别名,因为有时使用别名更方便,语义更清晰。1. 复杂的数据类型名称简化 typedef 的典型应用就是可以用一个较为简短的别名去表示一个复杂数据类型 。例如,如果程序需要一个如下形式的函数指针类型void (*)(int, int); 并且程序中还需要定义较多这种类型的指针变量,那么每定义一个变量就写一遍这个类型,不仅麻烦而...原创 2018-07-14 12:12:20 · 4224 阅读 · 0 评论