关于宏

【SV宏】systemverilog中宏macro的使用__宏替换 sv宏使用 阅读详情

宏的通用属性:

1.宏的替换列表可以包含对其他宏的调用

2.预处理只会替换完整的记号,不会替换记号的片段

3.宏的作用范围通常到出现这个宏的文件末尾

4.宏不可以被定义两遍,除非两个宏的定义是一样的

5.宏可以适用#undef指令“取消定义”,取消定义指令在宏未被定义的情况下,不起任何的作用


宏定义中的圆括号:

需要圆括号的两条规则:

1.如果宏的替换列表中有运算符,那么始终要将替换列表放在圆括号中

2.如果宏有参数,每个参数每次在宏列表中出现的时时都要放入圆括号中


预定义宏:

c语言中的预定义宏:

_LINE_   被编译的文件中的行号

_FILE_    被编译的文件名

_DATE_  编译的日期

_TIME_   编译的时间

_STDC_  编译器是否符合C标准(c89或c99)


SAS与宏 宏程序以%macro+宏程序名开始,%mend为结尾,想要执行宏程序需要调用宏,语法为%+宏程序的名称 嵌套宏—需要使用%mend +宏程序名指定哪个是宏程序结尾 宏变量(用&表示) 宏变量使用&表示,在创建过程中使用%let语句,输出值%put语句 %let语句创建宏变量时,不需要加&以说明变量为宏变量 %put输出时候,需要在变量前加&以说明变量为宏变量 宏变量不分类型,即使字符型变量也不需要加引号,%let语句会直接读取等号之后,分号之前的文本 空格不会作为宏变量赋值的终止符 宏参数 基本 阅读详情

相关推荐

MAPLAB X IDE仿真调试

一、开发环境 操作系统:Windows 10 调试工具:Pickit3 单片机型号:PIC24FJ32GA002 二、操作步骤 1、连接Pickit3仿真器于单片机对应的烧写口如图示: 2、点击调试项目进入调试模式,这时底下输出框显示"运行"代表成功进入调试模式。 3、选择断点,该IDE只支持两个断点,使用超过两个时,超过的断点亮灰色代表无效。设置好断点后需暂停然后再重新点击运行才能生效。可以看到在断点处有绿色光标。 ...

RealHero的博客 5084

C语言-宏定义中括号的问题

最近面试的时候 面试官让我写了一个用宏定义返回两个参数中的较小值,我直接就写了 #define min(a,b) (a<b)?a:b 然后面试官问了我一句需要写括号么,当时问的有些懵,犹豫之后说应该不需要了吧。 回来之后就仔细查了一下,发现自己还是犯了错误。 首先我们需要知道宏定义是怎么在代码中使用的,在代码预编译阶段,宏定义是直接替换的 例如: 在代码中我们使用了min(a,b),而在代码预编译阶段就会直接将min(a,b) 直接替换成a<b?a:b 因为替换的原因,所以就可能会存在一

Way621的博客 2737

Unity学习笔记之【IK反向动力学操作】

反向动力学,简称IK。相较于正向动力学,反向动力学旨在子级对父级产生的影响。使用IK,可以实现根据目标位置或方向来计算并调整角色的关节(骨骼)链,以使角色的末端(如手臂、腿部等)达到预期的位置或取向。通过使用 Unity 的 IK 功能,你可以实现各种复杂的角色动画效果,如角色抓取、足部对齐、手臂跟随等。 2. 将所视的目标物体拖拽绑定 4. 实现效果如下 :移动角色时注释立方体 实现效果如下

m0_47351846的博客 2954

宏定义中的参数需要加括号的原因

加括号是为了处理表达式参数(即宏的参数可能是个算法表达式)时不出错,因为宏替换就是文本替换,所以如果有以下情况: #define COM(A,B) (A)*(B) 那么COM(6+5,3)这个调用会怎么替换呢?它会换成这样: (6+5)*(3) 显然这是和COM宏的意图一致的,但是如是去掉了定义中括号,即写成这样: #define COM(A,B) A*B 那么

Akun6的专栏 3334

思科路由器IPv6各种路由协议配置

思科路由器IPv6路由协议配置:1、静态路由配置;2、默认路由配置;3、RIPng路由配置;4、OSPFv3路由配置。

weixin_41687096的博客 6544

安装m_map以及用matlab绘制高精度海岸线地图

#如何用matlab绘制高精度海岸线地图

qq_38512775的博客 1万+

宏定义的使用

宏定义的使用

J8121的博客 1214

creo二次开发使用映射

在creo进行二次开发时,一些无法直接通过访问底层代码来对特征进行操作,比如“镜像装配”,这个时候就可以使用映射(Mapkey)来完成一键镜像。 注:这是镜像装配的代码 ProError status; ProMacro macro; wstring Macro; strMacro = L"mapkey(continued) ~ Command ProCmdMirrorAssem ; mapkey(continued) ~ Activate mirror_component_dialog Sy

qq_49328512的博客 1626

C语言中define的用法(括号中宏的替换)

程序中用双引号括起来的宏在预处理的时候是不会被宏替换的!因为在 C 语言中,用双引号括起来表示的是字符串。宏定义用得最多的地方是在数组中用于指定数组的长度。请输入5个数:5 4 3 2 1。

weixin_61624357的博客 362

20 Embedding 与向量检索:语义为什么能变成距离

Embedding 是 RAG 语义检索的数学基础。本文用工程视角讲清文本如何变成向量,为什么语义相近会表现为距离相近,Top-K 检索如何工作,以及在模型选择、同模型约束、精确匹配和召回评估上的常见坑。

老于的笔记的专栏 6204

YOLOv26全流程实战手册:从yaml配置拆解到训练推理参数调优(附虚拟环境搭建)

以“车辆、行人、小型物体”3类数据集为例,修改# 1. 修改类别数nc: 3# 2. 调整锚框(适配小目标)anchors:- [12,16, 16,24, 33,23] # 增加小锚框# 3. 轻量化调整(边缘部署)depth_multiple: 0.25 # 降低深度系数width_multiple: 0.20 # 降低宽度系数# 其余Backbone/Head结构不变yaml配置:核心是调整nc(类别数)、(轻量化)、anchors(适配目标尺度);虚拟环境。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 878

C语言中,宏替换的替换规则

:https://zhidao.baidu.com/question/333406508.html a:tattackor 简单来说:宏定义又称为宏代换、宏替换,简称“宏”。是C提供的三种预处理功能的其中一种。 复杂的请看下面,讲的很全。下面的带参宏定义,多行宏定义,在Linux内核源码中很多。另外sizeof也是一个宏定义。 宏定义 宏定义是C提供的三种预处理功能的其中一种,这三种预...

qq_34352738的博客 3万+

【24届数字IC秋招总结】正式批面试经验汇总6——禾赛

15、ahb写或者读的数据存储起来了嘛,ahb读的话,apb这边是怎样的。19、覆盖率收集的时候有没有哪些是很难收集到的,然后写了定向测试。2、C++有学过嘛 还记得C++的什么内容 C++成绩多少。12、config_db机制用过嘛 四个参数的含义。8、脚本语言有学过嘛 简单学过 简单是指代码数少嘛。13、run_phase和mian_phase的区别。10、覆盖机制的创建方法 ,是不是覆盖用的很少。6、call_back机制记得哪些细节的东西。9、uvm实战学了哪些章节 印象深刻的章节。

qq_42135020的博客 1083

宏

宏(英语:Macro)是一种批量处理的称谓。 计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。 宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。 宏的特点:批量批处理的称谓 宏的用途:自动化频繁使用的序列 介绍 宏就是.

顺其自然~专栏 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

rust宏系列教程-利用派生宏和属性宏增强struct功能

学以致用,在前面几篇博文详细介绍了如何自定义宏之后,本文结合实际应用场景给出有用示例。首先我们介绍了Rust结构体及过程宏,接着通过属性宏和派生宏示例展示如何动态生成代码,让你真正理解定义宏在编译时修改Rust结构体代码的价值和意义。希望对你有所启发,未来继续,一起rust。

neweastsun的专栏 2040

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

WPS宏开发之VBA宏转JS宏

WPS宏开发 VBA宏转JS宏

Zu Xian 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

什么是宏?

什么是宏? 宏可以看作是一些命令的集合 那么什么是过程呢?标准的过程定义就是“将输入转化为输出的一组彼此相关的资源和活动”,在计算机界有的人将没有输出的函数称之为过程。可见过程的定义更为广泛。 如果对于唯一性输入值value,输出(或者return)的值也具有唯一性(这种输入或者输出的值没有个数的限制),那么具有这种变化关系的输入和输出关系,就称为输出是输入的函数. 可以认为过程是个更复杂的宏。 C语言中宏定义,宏替换 其他计算机语言中的宏是什么? 简单来说:宏定义又称

data+scenario+science+insight 1万+

Excel宏的介绍及应用

宏(Macro)是什么 在Excel的“视图”标签页下,有一个宏的功能,示例如下图: 宏其实是一段可以重复执行的代码,对应上图的两个选项: 查看已经存在的宏的代码段,并且可以执行 录制宏: Excel提供了可以像录制声音那样录制宏的代码段,点击“录制宏”之后,接下来对Excel的操作会自动转换为代码。 宏的来源 既然宏是可以重复执行的代码段,那宏是什么语言的代码呢?答案是VBA, 那VBA是什么语言呢? 这就要从BASIC语言说起了。 BASIC是一门很古老的计算机语言,发表于1964年。BASIC

oscar999的专栏 2万+

Rust宏系列教程—自定义派生宏

我们介绍了宏及其分类等基础知识,以及编写宏常用的依赖包等相关内容。在本节中,你将学习如何编写派生宏。我们通过实际示例由浅入深进行,让你逐步掌握自定义派生宏。

neweastsun的专栏 1591

Zabbix宏,及自动发现宏的演示

文章目录zabbix宏的概述宏的替换次序宏的使用示例宏的分类自定义宏演示用户自定义宏在监控模板中的使用模板宏变量的优先级大于全域宏主机层面的宏变量验证自动发现宏的演示配置低级别自动发现的步骤实战演示低级别自动发现的配置管理 zabbix宏的概述 宏的作用是便于在模板、Items、Trigger中的引用 Zabbix有许多内置的宏,如{HOST.NAME}、{HOST.IP}、{TRIGGER.NA...

李在奋斗的博客 3693

System Verilog 宏

宏是使用`define编译器指令创建的代码片段。它们基本上由三部分组成–名称、文本和可选参数。在编译时,代码中的每个`macroname都会被替换为字符串macrotext,而ARGS是可以在macrotext中使用的变量。遵循编码风格指南,以追求团队一致性知道`"```\的用法宏的作用域为全局命名空间。在一个类内定义的宏,不代表仅对这个类可见在编译日志中留意重复定义宏的警告。

千村雪的博客 4511

什么是宏

转载自百度百科:https://baike.baidu.com/item/%E5%AE%8F/2648286?fr=aladdin 所谓宏,就是一些命令组织在一起,作为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。Word使用宏语言Visual Basic将宏作为一系列指令来编写...

DAO1024的博客 5958

Excel VBA宏

一、宏与VBA 什么是宏与VBA VBA(Visual Basic for Applications)是[Visual Basic](https://baike.baidu.com/item/Visual Basic)的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是[Microsoft Office](https://baike.baidu.com/item/Microsoft Office)软件。它也可说是一种应用程式视觉化

努力奔赴未来 7747

Rust宏系列教程—实现复杂派生宏

();}"),if!continue;("{error:?}"),();if!})quote!至此,我们连续三篇博客详细讲解如何编写派生宏,首先解释基本派生宏理论及相关依赖包,然后从简单到复杂派生宏。希望你能耐心阅读并实现,一起rust!

neweastsun的专栏 1586

Rust 中的宏

宏(macro) 是 Rust 中的一种高级特性,Rust 中的宏分为两种: 声明性宏(declarative macros) 程序宏(procedural macros) Custom #[derive] macros Attribute-like macros Function-like macros 宏与函数的区别 函数不能接收任意多个参数,而宏可以。 函数不能操作语法单元,而宏可以。从根本上说,宏是用来生成代码的。 函数在编译之前不需要特殊处理,声明性宏需要在编译之前进行展开,展开之后代

花落花开的博客 8382

Makefile的宏

Makefile的宏分为俩种:普通的宏和特殊的宏 普通的宏: Makefile中普通的宏类似于变量。可以使用类似于下例的方式来定义: MACROS = -me #后续需要使用 -me时 可以使用 MACROS 与一些运算符进行配合使用 #例如: $(MACROS) #主要用于增加代码的可读性 PSROFF = groff -Tps DITROFF = groff -Tdvi CFLAGS = -O -systype bsd43 LIBS .

Lavender的博客 2610
上一篇: C语言预处理#运算符的细节
下一篇: 条件编译
comoon
博客等级 码龄15年 1粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值