![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
写写才有印象
铁头娃帆船
就是干!
展开
-
Git使用
cmd进入本地想纳入版本管理的目录, 使用git init,初始化版本管理,它会生成.git文件,用于本地版本管理;Git bash是一个终端窗口,用起来很卡不想用;而且我不喜欢太多鼠标操作,所以Git GUI也不想用;上git官网,下载git,安装,一路点默认;然后会有Git Bash 和Git GUI 2个应用。然后就可以用 git add、commit、status、reset等命令进行版本管理了。我在电脑上写一个项目, 想用Git进行版本管理。git可以本地管理、远程管理。原创 2022-10-02 11:47:17 · 85 阅读 · 0 评论 -
__builtin_prefetch
locality 必须是编译时的常数,也称为“时间局部性”(temporal locality)。时间局部性是指,如果程序中某一条指令一旦执行,则不久之后该指令可能再被执行;如果某数据被访问,则不久之后该数据会被再次访问。为 0 时表示,它没有时间局部性,也就是说,要访问的数据或地址被访问之后的不长的时间里不会再被访问;为 3 时表示,被访问的数据或地址具有高 时间局部性,也就是说,在被访问不久之后非常有可能再次访问;对于值 1 和 2,则分别表示具有低 时间局部性 和中等 时间局部性。转载 2022-09-19 11:01:50 · 391 阅读 · 0 评论 -
C++菱形继承
菱形继承的形状如下图。原创 2022-08-12 17:40:15 · 267 阅读 · 0 评论 -
UE4 UEngine.GameInstance.WorldContext.World.Level.Actor.Component
它拥有很多子类,其中比较常见的是ShapeComponent、StaticMeshComponent和SkeletalComponent,其中ShapeComponent能用于碰撞,但不能渲染出来,其余两者既可碰撞也可渲染。是一个运行游戏的高级管理者。它拥有一个FWorldContext指针,一般来说,一个游戏只会实例化一个GameInstance,生存周期持续到游戏结束,编辑器模式下,生存周期为打开Editor到关闭Editor。它是最高级类,拥有管理游戏世界的能力,游戏世界的信息存放在成员变量。....原创 2022-08-12 09:40:57 · 1064 阅读 · 0 评论 -
C++ mutable的用法
mutable修饰的变量可以在const函数里修改。mutable表示易变的,跟const是反义词。原创 2022-08-11 10:33:07 · 480 阅读 · 0 评论 -
C++移动语义
移动构造函数的输入是右值,编译器会自动调用移动构造函数来减少不必要的深度拷贝,比如下面的例子,因为CatBorn函数里的cat即将析构,是一个右值,所以编译器调用移动构造函数,把cat的pweight资源拿过来用。第一次调用myvector.push_back复制了foo的值到vector(foo保持原来的值。第二次调用使用了move函数把bar的值移动到vector里面(bar失去了他的值)。简单来讲,左值(lvalue: located value)就是可以拿到地址的值。a是左值,func()是右值。.原创 2022-08-09 20:35:24 · 338 阅读 · 0 评论 -
UE4代理小记
想到一个应用场景: 当角色升级时,需要改变UI等级提示,需要播放特效等等。如果不使用代理,代码大概是下面这个样子,角色代码里需要存放各种各样的指针,逻辑高度耦合。声明时需要F开头,蓝图需要用 UPROPERTY(BlueprintAssinable) 修饰;动态播支持序列化,可供蓝图使用,但是效率比较低。代理的意思:代替/代表他人处理某些事情。使用代理后,大概是这样子,角色解耦。注意: 多播没有返回值。......原创 2022-08-08 21:57:20 · 413 阅读 · 0 评论 -
C++参数带大括号 func({})
原来这是C++11支持的{}初始化方式,叫做“函数参数居然可以带大括号。原创 2022-08-08 13:58:39 · 1159 阅读 · 0 评论 -
带模板的类成员函数的用法
带模板的类成员函数的用法。原创 2022-08-04 19:18:38 · 240 阅读 · 0 评论 -
为什么使用动态库还需要静态库.lib文件
程序运行的入口在exe里面,当执行exe到动态库内容时,需要跳到内存里的动态库区域,然后执行相关内容;这个动作就需要exe里面存在一个引路人,来告诉exe,这个函数是动态库的函数,需要跳到其他内存区域执行,而这个存在于exe的引路人就是动态库的.lib文件,因为.lib文件会编译进exe文件里,.dll文件不会被编译进exe里面;动态库的.lib文件只提供链接到动态库的功能,它本身不包含库的代码内容。...原创 2022-06-06 22:28:48 · 1602 阅读 · 0 评论 -
C++explicit关键字的作用
前言时不时就会看到explicit修饰的构造函数,它的作用是什么呢?原创 2022-02-12 14:15:45 · 545 阅读 · 0 评论 -
enum class
enum class原创 2022-02-10 18:58:51 · 605 阅读 · 0 评论 -
IP设置相关
起因:Windows设置IP地址的时候,不知道怎么填,不知道填的值是什么含义。对网络通讯的基本概念很模糊。IPv4: 32位, 总共也有2的32次方个,组成:网络号+主机号,网络号可以分成ABC三类,分别对应8、16、24位, 其余的为主机号为了避免浪费,衍生出子网号,也就是把一部分主机号拿出来,作为子网号简单粗暴地把子网号归类为网络号,也就是 IP:网络号(网路号+子网号)+主机号子网掩码的目的:告诉计算机网络号(网路号+子网号)是哪几位,主机号是哪几位CIRD:放弃ABC类的网络划分。原创 2022-01-19 11:37:59 · 1449 阅读 · 0 评论 -
C++静态成员变量为什么要初始化
静态成员变量:静态成员变量是整个类共享的,存放在内存中的全局/静态区,生命周期直到程序结束。我们知道C++类的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。两者的区别在于:初始化是赋一个初始值,而定义是分配内存。静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给静态成员变量分配内存。...转载 2020-10-29 17:01:53 · 471 阅读 · 0 评论 -
C语言 带参数的#define中#和##的基本用法
1、单#的作用是把参数变成字符串;2、##的作用是连接组合参数名字;废话不多说,看个简洁的例子就明白了#include <iostream.h>using namespace std;#define TEST0(arg) cout << arg << endl#define TEST1(arg) cout << #arg << endl#define TEST2(arg) cout << i##arg <<原创 2020-10-22 19:00:13 · 1649 阅读 · 0 评论 -
打开smaba的设置界面
system-config-samba原创 2020-09-25 10:46:17 · 105 阅读 · 0 评论 -
sizeof,strlen
#include <stdio.h>#include <string.h>int main(){ char buf[1024] = {0}; printf("sizeof(buf) = %lu\n", sizeof(buf)); printf("strlen(buf) = %lu\n", strlen(buf)); return 0;}打印结果:sizeof(buf) = 1024strlen(buf) = 0原创 2020-07-21 10:05:46 · 85 阅读 · 0 评论