![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C / C++
文章平均质量分 92
_-ARCHER-_
24届毕业于西安电子大学的渣渣工程师一枚
展开
-
Motion Matching
新一代的动画技术Motion Matching针对状态机及动作融合的缺陷,拥有使用简单、灵活的特点,并且能实现丰富的动作效果。同时也存在响应、耗时等其他方面的缺陷。更多的游戏从业者也在这个方向上去探索,未来会有更多的游戏应用此技术。原创 2022-05-26 11:15:08 · 1516 阅读 · 1 评论 -
简说extern关键字
关键字extern的作用是在一个文件中引用一个变量或者一个函数引用同一个文件中的变量在编写代码的时候会出现一个变量在使用的时候,发现这个变量声明的位置在使用位置的后边,但是这个时候不想把声明位置给提前,导致程序出现变量未定义的错误,这个时候可以通过extern在使用之前对其进行声明,既可以使用该变量。例子:#include<stdio.h>void func();int main() { func(); //此时调用func函数在num声明之后 extern int num;原创 2020-09-03 11:33:47 · 127 阅读 · 0 评论 -
简说static关键字
今天在面试的时候面试官问到了static把我给问懵了,发现自己的知识储备真的不够。变量1、局部变量普通的局部变量储存在进程的栈空间,使用完之后会立即被释放,即在函数运行完毕之后其值变回消失。但是static变量在初始化的时候便会存入静态存储区中,就算没有赋初值也会默认设置为0,即使函数返回其值不会发生改变。在下一次进入到该函数的时候,定义static局变量的语句就等同于失效了,比如说static变量a = 1进入到函数中,执行语句static a = 0; 这样a的值还是保持为1,并不会初始化为0。原创 2020-09-03 10:46:12 · 212 阅读 · 0 评论 -
算法(2):动态规划 【持续更新】
动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。动态规划往往用于优化递归问题,例如斐波那契数列,如果运用递归的方式来求解会重复计算很多相同的子原创 2020-07-25 12:18:41 · 271 阅读 · 0 评论 -
算法(1):比较类排序C语言实现
这里写目录标题冒泡排序归并排序原理部分:十大经典排序算法(动图演示)冒泡排序归并排序1、递归方法原创 2020-07-13 14:41:08 · 516 阅读 · 0 评论 -
简说volatile关键字
volatilevolatile的本意是“易变的” 因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,编译器对访问该变量的代码就不再进行优化,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。由上分析,volatile总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以消除一些代码。但有时这转载 2020-07-09 10:59:19 · 115 阅读 · 0 评论 -
C / C++系列 (5):指针 vs. 引用
这篇博文主要讲讲指针与引用之间的相同点和不同点。对于使用不做介绍(太熟了)相同点都是地址概念指针为指向一块内存,它的内容是所指内存的地址。引用是某块内存的别名,使用相同的地址,相当于一个变量有两个名字。指针引用之间的转换:指针转引用:把指针用*就可以转换成对象,可以用在引用参数当中。引用转指针:把引用类型的对象用&取地址就获得指针了。int a = 0; int *pA = &a; void fun(int &va){} // 定义fun(*pA原创 2020-07-07 12:12:57 · 103 阅读 · 0 评论 -
C / C++系列 (4):malloc内存分配 & linux虚拟地址空间布局
变量内存分配的方式内存分配有三种方式:从静态存储区域 分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量 ,static变量 。在栈 上创建。在执行函数时,函数内局部变量 的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。从堆 上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内原创 2020-07-07 11:12:32 · 863 阅读 · 0 评论 -
C / C++系列 (3):heap vs. stack & new vs. malloc
文章参考:细说new和malloc区别Linux虚拟地址空间布局以及进程栈和线程栈总结在内存分配中会涉及到栈和堆(和数据结构中的堆栈不同),所以先将以下在内存中栈和堆的区别heap vs. stackkey points:堆(heap):持久化、顺序随意、全局栈(stack):临时、 后进先出、局部1、申请方式堆:由程序员自己申请并指明大小的,当进程调用malloc / new等函数分配内存时,新分配的内存动态添加到堆上(扩张);当调用free / delete等函数释放内存时原创 2020-07-06 20:50:50 · 403 阅读 · 0 评论 -
C / C++系列 (2):枚举enum
enum定义枚举定义枚举变量定义枚举由于在实际的编程中使用宏定义会使代码的阅读性变高,所以应该多采用宏定义进行赋。但是在实际的应用中 有着这样的问题:如果对于周一到周日需要定义1-7,一共7个define语句:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7一看就不太美观,所以枚举就出来了枚举的定义如下:enum enum_name {e原创 2020-06-30 11:17:58 · 466 阅读 · 0 评论 -
C / C++系列 (1):共用体union
union一级目录二级目录三级目录一级目录二级目录三级目录原创 2020-06-29 15:29:46 · 349 阅读 · 1 评论