• 2024-06-22C++ 结构体对齐详解
    目录前言一、为什么要对结构体进行对齐操作?二、基本概念三、对齐规则四、示例讲解1.简单的变量对齐2.结构体包含有结构体的对齐结构体成员详细解析五、使用指令改变对齐方式__attribute__((packed))#pragmapack(push,n)#pragmapack(pop)六、总结前
  • 2024-06-20黑加白 Dll 劫持及防护
    白加黑技术是一种利用动态链接库(DLL)劫持技术来绕过安全软件的主动防御机制的方法。攻击者通过某种方式(如修改系统注册表、替换或修改合法的DLL文件等)使白文件在运行时加载恶意的DLL而不是它原本应该加载的合法DLL。DLL劫持(有时也称为DLL侧加载或DLL预加载)是一种技术,它
  • 2024-06-18Vitis HLS 学习笔记--Stream Chain Matrix Multiplication
    目录1.简介2.示例解析2.1示例功能说明2.2函数说明 2.2.1 mmult函数2.2.2 mm2s函数2.2.3 s2mm函数2.2.4总示意图3.总结1.简介这是一个包含使用数据流的级联矩阵乘法的内核。该内核启用了ap_ctrl_chain,以展示如何重叠多个内核调用队列以提供更高的性
  • 2024-06-13c++防止头文件重复
    在C++的头文件中,为了防止重复包含,需要使用预处理指令#pragmaonce或者传统的条件编译方式。下面分别详细说明这两种方式的写法及作用:#pragmaonce使用#pragmaonce指令:#pragmaonce是一种简便的方式,可以确保头文件只被编译一次。在头文件的开头加入#pragmaonce即可,示例
  • 2024-06-11[ToneTuneToolkit][023]UGUI的去色,使UI元素变为灰色
    #regionEnvironmentWindows1022H2Unity2022.3.30f1LTSVSCode1.90.0//ToneTuneToolkit下载地址// https://github.com/MirzkisD1Ex0/ToneTuneToolkit.git#endregion 把UGUI的元素去色!变成灰色!!!超级方便!//该项功能已包含至ToneTuneToolkit插件  01.新建场景,新建
  • 2024-06-04URP案例(较重要)
    简约水面场景准备:水底和水面的示例物体天空球和天空球一样的Cubemap组成部分深度颜色水下扭曲泡沫高光反射焦散代码部分github地址:有注释,就不写了详细过程了C# usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;namespaceU
  • 2024-06-04C/C++结构体对齐测试
    #include<stddef.h>#include<iostream>structs1{inta;intb;};#pragmapack(8)structs2{charc;inta;doubleb;};structs3{charb[10];doublea;};#pragmaunpackstructs4{c
  • 2024-05-28C++中的异类:“#” 符号背后的故事
    最近在写编程语言的书,聊到C++的宏,感觉很有意思,搬运过来。在C++语言中,# 符号是一个独特的符号。它似乎不在语言核心中,但是在源码里却又无处不在。在语法上,#的语法规则在C++体系里独具一格,和C++语法相比像是两个语言似的。这些差别让我们感受到#背后的故事不简单。今天,我们
  • 2024-05-24Unity Shader介绍
    1.Shader的基本概念什么是Shader?Shader是小型程序,用于在GPU上运行,处理顶点、像素或其他图形处理单元。Unity主要使用以下两种Shader:顶点Shader(VertexShader):处理每个顶点的数据,如位置、颜色和纹理坐标。片段Shader(FragmentShader):决定每个像素的颜色。Unity中的Shader类型
  • 2024-04-27C++火车头
    点击查看火车头#pragmaGCCoptimize(3)#pragmaGCCtarget("avx")#pragmaGCCoptimize("Ofast")#pragmaGCCoptimize("inline")#pragmaGCCoptimize("-fgcse")#pragmaGCCoptimize("-fgcse-lm")#pragmaGCCoptimize(
  • 2024-04-24将C++代码文件路径、行号、函数名称等打包到#pragma message输出的方法
    #include<iostream>#define__GEN_STRING_IMPL(x)#x#define__GEN_STRING(x)__GEN_STRING_IMPL(x)#define__GEN_LOCATION_STRING()__FILE__"("__GEN_STRING(__LINE__)"):"classCTestObject{public:voidprint1(){
  • 2024-04-08CF1951E No Palindromes 题解
    题目大意给出一个字符串sss,要求将sss分为若干个非回文子串,输出
  • 2024-03-31洛谷 P8405 [COCI2021-2022#6] Naboj 题解
    题意简述给定一张无向图,每条边有个哨兵,初始在边的中间。你可以把某个结点旁边的哨兵全部吸引或远离这个结点。给出最后每个哨兵在边的哪一端,请构造出一种可能的操作方案或报告无解。多种情况输出任意解,你不需要最小化操作步数。题目分析发现一个哨兵和且仅和最后一次关联这条边
  • 2024-03-31OpemMP 同步结构
    为了说明同步,我们先来看如下多线程加法的问题,假设x初值为0:THREAD1:THREAD2:Highlevelcodeincrement(x){x=x+1;}increment(x){x=x+1;}AssemblyLOADA,(xaddress)ADDA,1STOREA,(xaddress)LOADA,(xaddress)ADDA,1STOREA,(xaddres
  • 2024-03-30Acwing 5475. 聚会 ( BFS )
    https://www.acwing.com/problem/content/5478/输入样例1:5543124321223344145输出样例1:22223输入样例2:76321233221122334255667输出样例2:1112211#pragmaGCCdiagnosticerror"-std=c++11"#pragmaGCCtarget(
  • 2024-03-30yii2响应(Responses)
    yii2响应(Responses)状态码Yii::$app->response->statusCode=200;异常yii\web\BadRequestHttpException:statuscode400.yii\web\ConflictHttpException:statuscode409.yii\web\ForbiddenHttpException:statuscode403.yii\web\GoneHttpException:
  • 2024-03-28CF1936E 做题记录
    link设\(P_i=\max(p_1,p_2,...,p_i)\)。首先转容斥,方便计算。接下来容斥的点很巧妙:钦定哪些前缀最大值重合(非位置),我们可以把这个前缀最大值放在第一次重合的位置计算。设\(f[i]\)表示考虑了前\(i\)个位置,并且\(i\)是钦定的前缀最大值的第一个重合位置,带符号的方案数之
  • 2024-03-26一些常见的简单优化
    1:输入优化readios::sync_with_stdio(0),cin.tie(0),cout.tie(0);namespaceio{ constllBUFSIZE=1<<20; charibuf[BUFSIZE],*is=ibuf,*it=ibuf; charobuf[BUFSIZE],*os=obuf,*ot=obuf+BUFSIZE; inlinechargetch(){ if(is==it)it=(is=ibuf)+fread(ibuf,1,BUF
  • 2024-03-22C语言预编译#pragma宏的作用
    在嵌入式编程中,#pragma指令具有非常重要的作用,因为它允许开发者在不同的编译器之间传达特定的编译指令。由于嵌入式编程通常与硬件紧密相关,且资源有限,这些指令可以帮助开发者更有效地利用可用资源,优化程序,以及处理特定的硬件约束。以下是#pragma在嵌入式编程中的一些常见应用
  • 2024-03-20#pragma指令
    pragma是一个在C和C++中使用的编译器指令,用于向编译器发出特定的命令或控制编译的行为。控制编译警告通过#pragmawarning指令,可以在特定位置或范围内控制编译器的警告行为,如禁止某个警告、将警告作为错误处理等。例如禁止特定的编译警告:#pragmawarning(disable:4996)
  • 2024-03-15OpenMP - default子句
    OpenMP是基于共享内存编程模型的,这意味着除非明确指定,否则所有的变量在并行区域中都是共享的。使用default子句,程序员可以更改这种默认行为。default(none)指定在并行区域内,除非明确指定为shared或private,否则所有变量都是未定义的。这要求程序员显式地指定每个变量的作用域;defau
  • 2024-03-15#pragma INITCODE
    #pragmaINITCODE//将driverEntry设在分页内存中,当驱动加载成功,此函数在内存中移除。 PAGED_CODE();//当例程所在的中断请求级超过APC_LEVEL时,会产生一个断言,断言会使程序终止。
  • 2024-03-14洛谷 P3261 [JLOI2015] 城池攻占 题解
    题目分析其他人要么倍增,要么左偏树,那我就来讲讲朴实无华的dfs序加上线段树的做法。首先发现题目中明确指出了作乘法的时候一定是乘上一个大于零的数,这是为什么呢?首先把可以占领当前城池的战斗力的不等式列出来:\[h_j\le\left\{\begin{array}{c}s_i\timesv_j&&{a_j=
  • 2024-03-13[C++]c++ 在项目cpp文件中直接用#pragma comment语句引入,无需配置属性表
    使用语句添加引入库的好处就是无需配置多个属性表,不管是debug模式还是release模式,不管是64位还是32位,几行代码通吃。相对路径:#ifdef_M_X64#pragmacomment(lib,"../../../VC++/DVPCamera64.lib")#else#pragmacomment(lib,"../../../VC++/DVPCamera32.lib")#endif绝
  • 2024-03-11OpenMP - 编译制导(三)
    ordered制导#include<iostream>#include<omp.h>usingnamespacestd;intmain(intargc,char*argv[]){intd[6];#pragmaompparallelfororderedfor(inti=0;i<6;++i){#pragmaompordered{co