("%s\n", __TIME__); printf("%d\n", __LINE__); return 0; } 我们在VS上使用 _ _ STDC _ _ 会发现显示未定义,这也就说明VS的编译器是不完全遵循...下面是一个宏定义: #define DOUBLE(x) (x) + (x) 定义中我们使用了括号,虽然这样可以避免之前的问题,但是这个宏定义可能会出现新的问题: #include #define...五、宏替换的规则 宏替换是C语言预处理器的一个重要功能,它在编译之前进行文本替换。...字符串化和标记粘贴: 预处理器提供了特殊的宏操作符,如字符串化运算符#和标记粘贴运算符##。...字符串化运算符可以将宏参数转换为字符串字面量,而标记粘贴运算符可以将两个宏参数连接成一个单一的标识符。
我将从C这样的不具备泛型系统的语言如何解决这个问题开始,然后分别展示其他语言如何在不同的方向上逐渐添加扩展,从而发展出各具特色的泛型系统。...我将描述三种不同的完全通用的元编程方法,看看它们是如何在泛型系统空的不同方向进行扩展:像Python这样的动态语言,像Template Haskell这样的过程宏系统,以及像Zig和Terra这样的阶段性编译...两个基础流派中的每一个流派都有很多方向可以扩展,以增加额外的能力或安全性,不同的语言已经将两者带入了非常有趣的方向。有些语言如Rust和C#甚至提供了这两种选择!...Java和Objective-C一开始都是使用基础装箱,后来又增加了基于类型擦除的泛型功能,为了兼容,甚至使用了和以前完全一样的集合类型,但可以选择泛型参数。...使用宏就可以直接将用户写的代码以token的形式从输入粘贴到输出,如果用户的代码在宏输出中引起编译器错误,编译器输出的错误信息将正确地指向用户代码所在的文件、行和列,但如果宏生成了错误,那么错误信息将指向宏调用
通过msf生成msi文件,python开启http服务,然后替换命令为攻击载荷,右键隐藏宏,并把文件执行方式改为 Auto_open,直接复制粘贴,按一下enter就行了 ? ?...,不能保证受害者电脑上有此图标 ?...JSbackdoor 4.文件钓鱼 钓鱼方式的开山鼻祖,很古老了,原理就是利用一般人是不会打开显示已知的文件扩展名,而windows正常情况下不会显示已知的文件扩展名,但是从事信息安全的人员一般都打开了的...更新设置成覆盖所有文件,保证二次自解压不报错,不会引起怀疑 ? 然后修改文件名和图标进行伪装就欧克了 6.word宏钓鱼 新建一个word,打开,然后点击视图,宏,查看宏,选择当前文档,点击创建 ?...Bounce to 选项就是你伪造好的邮箱,你可以伪造成admin@qq.com什么的,但是大多数邮件服务器有防御,会显示代发人,发之前还可以点击Preview进行预览 再来给flash钓鱼网站,当我们找到一个网站的后台
p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。 shift+p 在当前行前粘贴 :1,10 co 20 将1-10行插入到第20行之后。...:help 'number' Vim选项的帮助用单引号括起 :help 特殊键的帮助用扩起 :help -t Vim启动参数的帮助用- :help i_ 插入模式下Esc的帮助...:set list 显示非打印字符,如tab,空格,行尾等。...如果tab无法显示,请确定用set lcs=tab:>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了 expandtab,那么tab将被扩展为空格。...q录制名为a的宏,@a使用这个宏。
主要能用来扩展 Windows 的 应用程序功能,特别是 Microsoft Office 软件,也可说是一种应用程式视觉化的 Basic 脚 本。...双击 “ThisDocument” ,将原有内容全部清空,然后将 CobaltStrike 生成宏 payload 全部粘贴进去,保存并关闭该 VBA 编辑器 。...另存为的 Word 类型务必要选”Word 97-2003 文档 (*.doc)”,即 doc 文件,保证低版 本可以打开。之后关闭,再打开即可执行宏代码。.../releases 把这两个下载回来即可 使用方法: EvilClippy.exe -s hello.vba diaoyu.doc 参数说明:-s 参数是通过假的 vba 代码插入到模块中,用以混淆杀毒程序...,Ctrl+A 全选,然后 Ctrl+C 粘贴 CS 生成宏代码流程 然后粘贴进来 再 Ctrl+S 保存 这里需要选择否,然后保存为启用宏的 word 文档 注意:这里一定要先关闭杀软,不然会保存失败
主要能用来扩展 Windows 的 应用程序功能,特别是 Microsoft Office 软件,也可说是一种应用程式视觉化的 Basic 脚 本。 CobaltStrike 生成宏 ?...另存为的 Word 类型务必要选”Word 97-2003 文档 (*.doc)”,即 doc 文件,保证低版 本可以打开。之后关闭,再打开即可执行宏代码。...把这两个下载回来即可 使用方法: EvilClippy.exe -s hello.vba diaoyu.doc 参数说明:-s 参数是通过假的 vba 代码插入到模块中,用以混淆杀毒程序,这里我们需要写一个正常...然后点开发工具>>>>>点击宏 ? ? 宏的位置选择当前文档,然后点击创建 ? 然后再把 CS生成的宏代码复制进去,Ctrl+A 全选,然后 Ctrl+C 粘贴 ? CS 生成宏代码流程 ? ?...然后粘贴进来 ? 再 Ctrl+S 保存 ? 这里需要选择否,然后保存为启用宏的 word 文档 ?
end end 像之前所提到的那样, 编译器从一个类似于这段代码的 AST 开始. 这个 AST 之后会被扩展, 然后生成最后的代码....因为宏有两个看似矛盾的性质: 宏也是 Elixir 代码 宏在在最终的字节码生成之前的展开阶段运行 Elixir 代码是如何在被生成之前运行的?它不能....(conn) 的. 通过这样做, 我们指定 conn 是一个对调用者可见的变量. 上述代码没有解释 body 是如何注入的. 在这之前, 你需要理解宏所接受的参数....宏参数 你要记住, 宏本质上是在扩展阶段被导入的 Elixir 函数, 然后生成最终的 AST. 宏的特别之处在于它所接受的参数都是quoted 的....如之前所述, 这就是宏的用途. 它接收一些 AST 片段, 并将它们与样板代码组合在一起, 以生成最终结果.
这个内容完全是我们之前通过键盘输入到vim中的内容,只是返回到普通模式输入的是 而这个保存的是^[ 因为宏有自己的键盘编码方式,这个方式我觉得不需要特别去查去记,自己就可以从寄存器中查到。...配合文件参数列表使用宏 之前介绍过文件参数列表,即使用 :args 可以对文件进行分组,各位小伙伴可能只知道这个,但是没找到它的使用场景。...录制宏: 添加参数列表: 执行宏 上述的操作方式采用的是并行的执行宏,我们可以对其进行一些修改,让其支持串行的方式。 还记得之前介绍的怎么遍历参数列表吗,不记得也没关系。...接着修改一下这个宏。在对应位置加上 S 这个操作,最后使用 0d$ 从行首粘贴到行尾,注意这里尽量不要使用 dd,它会连带着换行符一块进行粘贴,可能会破坏宏的指令。...最后我们可以先删除之前粘贴的一行,再重新执行这个宏 最后的叨叨 宏是vim提供的很有用的功能,希望我通过本文让各位小伙伴对它有一个初步的认识,想要用好宏这个强大的工具还是需要花大量的时间去学习研究的。
1.简介 这一篇宏哥主要介绍playwright如何在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接...那么我们在做自动化测试的时候,如何跳过这一步骤,直接访问到我们需要的页面了,这个就是宏哥主要分享和讲解的如何在三大浏览器跳过这一步骤。...因此宏哥在playwright中也觉得类似差不多,但是代码写完后,宏哥直接傻眼了,完全不一样啊!!!playwright直接都没有访问到那个安全提示的页面,就报错了:playwright._impl....首先确定的之前那种定位到【详细信息】,点击,然后再定位到【转到此网页(不推荐)】点击的方法不能用了,因为根本就没有访问到这个页面,怎么定位点击。...6.扩展6.1codegen录制用例有的小伙伴或者童鞋们很早之前就问到了录制遇到https报错,怎么办呢?
这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理....在gcc中, 进行编译预处理的程序被称为CPP, 它的可执行文件名为cpp. 编译预处理命令的语法与C语言的语法是完全独立的....#define mul(x,y) (x)*(y) sizeof mul(1,2.0) 将被扩展为 sizeof 1 * 2.0 调用函数宏时候, 传递给它的参数可以是函数的返回值..., 它与#define对立: #undef name 如够被取消的宏实际上没有被#define所定义, 针对它的#undef并不会产生错误....系统头文件中的代码往往不能完全遵循C标准, 所以头文件之中的警告信息往往不显示.
1.简介 这一篇宏哥主要介绍playwright如何在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接...那么我们在做自动化测试的时候,如何跳过这一步骤,直接访问到我们需要的页面了,这个就是宏哥主要分享和讲解的如何在三大浏览器跳过这一步骤。...因此宏哥在playwright中也觉得类似差不多,但是代码写完后,宏哥直接傻眼了,完全不一样啊!!!playwright直接都没有访问到那个安全提示的页面,就报错了:playwright._impl....首先确定的之前那种定位到【详细信息】,点击,然后再定位到【转到此网页(不推荐)】点击的方法不能用了,因为根本就没有访问到这个页面,怎么定位点击。...6.扩展 6.1codegen录制用例 有的小伙伴或者童鞋们很早之前就问到了录制遇到https报错,怎么办呢?
点击“close”关闭它就可以了,如下图所示:2 安装vscode这是一个由微软开发的代码编辑器,完全免费。 以后,我们会在这里面运行腾讯混元大模型写好的程序。...3.2.在vscode里,安装Python扩展① 打开软件,单击左边的扩展按钮② 在搜索框里,搜索“Python”③ 点击“安装”当显示已安装的时候,就安装成功了。...手机电脑都试了点不动 ,如下图所示:2.给出的链接点不动,那就按宏哥自己的前边提供方式安装 ,如下图所示: pip install ffmpeg3.安装后宏哥运行代码仍然报上边同样的错误,查找资料后发现说的需要配置...5.1代码生成混元大模型能够理解用户的需求,自动生成高质量的代码。模型在多种编程语言(如Python、Java、C++等)和领域(如数据分析、Web开发、机器学习等)上均有很好的表现。...对密码进行加密:在将密码传递给程序之前,可以使用某种加密方法对其进行加密,以减少密码泄露的风险。3. 使用更安全的方式获取密码:例如,通过从标准输入读取密码,而不是从命令行参数获取。
如果你在 PPT 里插入一个下拉框,你会发现 PPT 没有提供地方让你去指定下拉框的选择项和存放选择结果的位置,所以之前在 Excel 里的做法在这里行不通。 那该怎样做呢?...好在我之前写《用地图说话》的时候,曾琢磨过如何在 PPT 里演示点击地图选择的动态图表,琢磨出一种做法,现在就和大家分享。 ?...复制 Excel 文件里放置图表的单元格区域(注意是图表后面的单元格区域,不是图表本身),在 PPT 里新开一页,选择性粘贴 - 工作表对象,这样,就把那个 Excel 文件“嵌入”到这个 PPT 里了...放映PPT,鼠标点击下拉框,可能会看到赋值的一下闪动,这时下拉框可能只有1行,再点一下下拉框,就可以完全展开了(这应该是个小bug)。选择某个选择项,右侧的图表就应该动态切换。...首次选择时可能有点慢,因为在打开那个嵌入的 Excel 文件,后面再选择就完全正常秒级响应了。成功。 8、保存 PPT 文件。 保存文件时会提示含有宏,选择保存为后缀名为 .pptm 带宏格式的文件。
非常重要的一点是要记住,为了让这个方法完全按照我们的意愿工作,我们需要包括指定配置字符串中包含的特定实体的行为的参数,例如项目/值映射/模板等。...Zabbix agent active'\n name: 'Linux by Zabbix agent active'\n ... }, "auth": "xxxxxx", "id": 1 } 3.使用扩展参数扩展触发器函数和宏...获取关于一组特定触发器的信息是一种相对常见的做法。需要特别注意的是,在默认情况下,触发器名称、表达式或描述中的宏是不会展开的。...为了展开可用的宏,我们需要使用展开参数: { "jsonrpc": "2.0", "method": "trigger.get", "params": { "triggerids": "18135",...searchByAny参数可以扩展搜索—如果设置为true,我们将根据搜索数组中的任何一个条件进行搜索,而不是试图找到一个匹配所有条件的实体(默认行为)。
决定写这篇连载,也是抱着和读者共同学习的打算,从头开始整理一下之前的心得。 作为第一期,会分别说明【编程到底是什么?】...选择想要执行的宏「复制粘贴」后,单击[执行]按钮(图13)。 图13 你会发现,宏命令开始执行,数据被复制粘贴了。见图14 图14 频繁使用宏命令时,每次都要从「宏一览」中执行是很麻烦的。...这样,按钮和宏之间的关联就建立起来了。 图22 现在让我们点击按钮来执行一下宏。首先,先单击一下按钮之外的单元格,然后单击一下按钮,员工数据就会像之前的图14 那样被拷贝粘贴完毕了。...之后开始录制宏,选择之前拷贝粘贴的区域,然后按键盘上的[Delete]键。 单击「录制结束」。在「插入」菜单处选择「形状」,然后选中「圆角矩形」。将按钮的文字描述为「删除」。...在「另存为」画面上找到[保存类型],然后选择「启用宏的工作簿(*.xlsm)」,输入文件名后点击[保存](图25)。 包含宏命令的文件扩展名为「.xlsm」。
参数Destination是要粘贴剪贴板内容的Range对象,由于该参数可选,因此可以忽略它;如果忽略,Excel会将剪贴板的内容粘贴到当前所选区域中,因此,如果省略该参数,则必须在使用Worksheet.Paste...方法之前选择目标区域。...参数Link可以建立到粘贴数据的源的链接,要执行此操作,将该参数设置为True;该参数的默认值为False,表示不建立到源数据的链接。...CopyPicture方法有两个可选参数:Appearance和Format。注意,这两个参数与Excel在“复制图片”对话框中显示的参数完全相同。...如何取消剪切或复制模式并删除移动边框 如果在使用VBA复制和粘贴单元格或单元格区域时必须(或选择)使用剪贴板,则可能需要在宏结束之前取消剪切或复制模式,这将删除复制的单元格区域周围的移动边框。
但在此之前, 我要请你认真考虑一下你的代码是否有有必要基于宏. 尽管宏十分强大, 但也有缺点. 首先, 就像之前我们看到的那样, 比起那些普通的运行时抽象, 宏的代码会很快地变得非常多....但是, 您不应该仅仅为了获得一些可爱的 dsl 式语法而选择宏. 在使用宏之前, 应该考虑是否可以依靠“标准”语言抽象(如函数、模块和协议)在运行时有效地解决问题...., [ast_for_a, ast_for_b]} 在我们的例子中, ast_for_a 和 ast_fot_b 遵循着你之前所看到的变量的形状(如 {:a, [if_undefined: :apply...注意我们是如何对输入表达式进行模式匹配的, 希望它符合某种结构. 这完全没问题, 因为宏是函数, 这意味着您可以依赖于模式匹配、guards(守卫), 甚至有多子句宏....我还引入(实际上, 是从 Elixir 源代码中复制粘贴了)guard 语句指定了宏能处理的运算符集(第 3 行). 这个检查有一个特殊原因.
(在Vim中,复制内容与录制宏共享同一套寄存器,因此我习惯把字母寄存器留给宏使用)d) 普通模式下小写p把寄存器内容复制到当前位置之后,大写P把寄存器内容复制到当前位置之前。...需要注意的是宏和复制粘贴共用一套寄存器,因此在录制宏时就注意不要把当前宏正在使用的寄存器用来复制了。寄存器内容是自动保存的,重启Idea仍然生效。但IdeaVim没有导出宏独立保存的功能。...因此最好把用来保存宏的寄存器和用来复制粘贴的寄存器分开,不要同一个寄存器有时用来记录宏,有时用来复制粘贴。...右手区的hjklnm键用来保存一些临时宏。yuiop五个寄存器保留用来复制粘贴。如果录制的宏不涉及删除大段代码,寄存器1至9也可以用来进行复制粘贴。执行一次宏后,可以用@@命令重复上一次执行的宏。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
拷贝和粘贴 yy 拷贝当前行 nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。 p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。...关闭所有窗口,只保留当前窗口 :only 录制宏 按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。...:help 'number' Vim选项的帮助用单引号括起 :help 特殊键的帮助用扩起 :help -t Vim启动参数的帮助用- :help i_ 插入模式下Esc的帮助...:set list 显示非打印字符,如tab,空格,行尾等。...如果tab无法显示,请确定用set lcs=tab:>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了expendtab,那么tab将被扩展为空格。
领取专属 10元无门槛券
手把手带您无忧上云