首页 / 知识
有没有办法在Visual C中用可变参数列表编写宏?
2023-04-15 11:46:00

is there a way to write macros with a variable argument list in visual C++?据我所知,在gcc中,您可以编写如下内容:
在VC中有办法做到这一点吗? 是的,但仅从VC 2005开始。示例的语法为:
完整参考在这里。 如果您不想使用非标准扩展名,则必须提供额外的括号:
是的,您可以在Visual Studio C 2005和更高版本中执行此操作(不确定VS 2003)。看一下VA_ARGS。您基本上可以执行以下操作:
和宏的变量参数将传递给以'...'args提供的函数,然后您可以在其中使用va_args解析它们。 使用VA_ARGS和使用宏可能会有奇怪的行为。由于VA_ARGS是可变的,因此意味着可以有0个参数。这可能会在您不想要的地方留下逗号结尾。 对于MSVC 7.1(.NET 2003),此方法有效:
如果您实际上不需要宏的任何功能( 您要查找的内容称为[可变宏](http://msdn.microsoft.com/zh-cn/library/ms177415(VS.80).aspx)。 链接摘要:是的,从VC 2005起。 在MSDN中搜索" VA_ARGS"和va_list! 以下应该起作用。 (请参见可变参数宏的链接) (下面的示例显示固定和可变参数。)
差不多。但是,它比这更丑陋(并且您可能不希望宏本身中包含尾随的分号:
要使用它:
(缺少一对括号)。 不确定为什么所有的否定词,原始问题都没有说明VC的版本以及所有编译器均不支持可变参数宏。 |
最新内容
相关内容
linux命令退出编写?
linux命令退出编写?,档案,状态,命令,电脑,工具,分析,系统,实时,编辑,模式,linux保存退出命令linux怎么保存并退出首先需要打开linux服务器,然后编写linux全局命令?
编写linux全局命令?,工作,地址,系统,信息,命令,目录,标准,时间,文件,控制台,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录linux文件编写命令行?
linux文件编写命令行?,系统,名字,状态,文件,命令,终端,数据,密码,位置,文件夹,linux命令如何新建一个文件1、终端下键入:touch加文件名,这样就创linux退出编写命令?
linux退出编写命令?,档案,状态,命令,信息,名字,编辑,模式,文件,以下,内容,linux退出vi编辑命令先按ESC进入Command模式,然后输入“:wq”,回车就可linux命令怎么编写?
linux命令怎么编写?,系统,地址,工作,信息,命令,位置,环境,发行,标准,电脑,Linux命令怎么写cat(连接的缩写)是Linux中最常用的命令之一。它用于在linux下自己编写命令?
linux下自己编写命令?,系统,代码,电脑,状态,工具,标准,名称,基础,等级,命令,Linux:Python编写Linux自定义命令工具1、首先我们先认识一下cat指linux下编写脚本命令?
linux下编写脚本命令?,代码,时间,工具,标准,系统,实战,平台,最新,网站,文件,linux写脚本,需要ls只显示前10个文件,怎么实现?在linux中如果用lslinux编写c语言命令?
linux编写c语言命令?,系统,基础,环境,代码,盘面,保险,百度,情况,数据,工具,在Linux系统中,如何运行一个C语言程序?编译。由.c文件生成.o文件,写linux编写文件的命令?
linux编写文件的命令?,系统,时间,工作,命令,文件,名字,信息,终端,目录,文件名,linux命令编辑文件命令是什么1、linux常用命令有pwd命令、cd命linux命令行软件编写?
linux命令行软件编写?,流程,基础,百度,系统,软件,命令,工作,数字,第三,环境,linux编辑文件命令1、linux常用命令有pwd命令、cd命令、ls命令、clinux编写who命令?
linux编写who命令?,系统,工作,信息,时间,名称,命令,报告,情况,状态,管理,linux文件操作命令有哪些1、文件和目录管理:ls:列出当前目录下的内容。初学者编写python用什么软件好
初学者编写python用什么软件好,代码,环境,平台,数据,系统,软件,管理,发行,项目,培训,以下是常用的几款Python代码编辑器和Python集成开发工具