腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
如何挑选出发送到只接受可变参数
的
宏
的
第一个参数
c++
、
c++11
、
macros
、
c-preprocessor
、
variadic-macros
我尝试获取发送到
变量
宏
的
第一个实际参数。这是我尝试过
的
,但在VS2010
中
不起作用:#define MY_MACRO(...) decltype(FIRST_ARG(__
VA_ARGS__
)) 当我查看预
处理器
输出时,我看到FIRST_ARG返回发送给MY_MACRO
的
整个参数列表这似乎与臭名昭著
的
两级并列
宏
所解决
的
问题相反。我知道“
宏
浏览 3
提问于2011-01-21
得票数 6
1
回答
使用
变量
和后期
展开
创建字符串化
宏
参数列表
c
、
macros
、
stringification
、
variadic-macros
、
boost-preprocessor
我有以下问题:给定
变量
数量
的
宏
参数argX,以创建字符串化参数#argX
的
列表LIST(A, B) -> "A", "B"我使用
的
是那样的话(如果我用.和__
VA_ARGS__
),
宏
在
字符串化之前就会
展开
,给出:LIST(A
浏览 2
提问于2014-01-01
得票数 4
回答已采纳
1
回答
C只有
在
存在争论
的
情况下才能进行
宏
处理
c
、
c-preprocessor
我试图弄清楚如何编写一个预处理
宏
,只有当存在一个参数时,它才会“压缩”它
的
参数。例如:STRINGIFY() ->#define STRINGIFY(x) #x如何才能做到这一点?编辑 作为我为什么想要这种行为
的
一个例子,我使用
宏
为字符串数组生成一个初始化器。con
浏览 3
提问于2021-07-27
得票数 0
2
回答
发布模式下
的
C++
调试
宏
编译失败
c++
我正在使用visual studio (2019),我有以下
宏
:#define EngineLog(vars, ...)Log(vars, ##__
VA_ARGS__
)我
的
日志函数是这样包装
的
:static void Log(args && ...但是当我使用发布模式时,我得到:我
浏览 1
提问于2022-06-16
得票数 1
1
回答
c++
抱怨__
VA_ARGS__
c++
、
c++11
、
gcc
以下代码是用gcc-5.4.0编译
的
,没有任何问题:...dummy = 10; DEBUG("debug msg dummy=%d\n", dummy);} debug("DEBUG: "__
VA_ARGS__
); \ % g++
浏览 5
提问于2022-06-27
得票数 4
回答已采纳
1
回答
C/
C++
中
定义#define
的
不同语法,包括许多语句
c++
、
c
、
macros
、
c-preprocessor
我理解#define
的
语法,因此很明显,我们可以
在
代码中使用Pi常量而不是3.14来提高代码
的
可读性。doIT("hello world");#define允许给出这样
的
语法吗?__FUNCTION__,__
VA_ARGS__
是什么意思?\ if (pDoLog) pDoLog->L
浏览 2
提问于2015-02-12
得票数 1
回答已采纳
1
回答
理解、延迟和阻止
宏
c++
、
c++11
、
macros
、
c-preprocessor
我
的
大多数实现工作是根据
宏
的
变量
参数计数或通过计数器重载
宏
:#define REPEAT_0(x) #define直到部分,我才理解他
的
文章。EXPAND(DEFER(A)()) // Expands to 123,
浏览 5
提问于2015-04-30
得票数 22
回答已采纳
2
回答
C++
预
处理器
元编程图灵完成吗?
c++
、
c-preprocessor
、
metaprogramming
、
turing-complete
、
preprocessor-meta-program
我知道
C++
模板元编程是图灵全
的
。对于预
处理器
元编程,同样
的
情况也适用吗?
浏览 2
提问于2011-09-22
得票数 6
回答已采纳
6
回答
宏
生成
宏
在
C
中
?
c
、
macros
、
c-preprocessor
、
variadic-functions
我想让C预
处理器
为我生成
宏
(也就是说,我只使用C99 )。我会写一个
宏
当我把make_macro(name2)然后我就可以使用name1和name2作为(
宏
实现
的
)函数。我认为在这两个步骤
中
我都要使用
宏
:使用
宏
反复地重新填充模板是有意义
的<
浏览 4
提问于2009-05-13
得票数 11
2
回答
在
C++
预
处理器
宏
中
展开
__
VA_ARGS__
的
变量
名称
c++
、
enums
、
macros
、
c-preprocessor
、
variable-expansion
我正在尝试实现一个正确
的
enum to st
宏
,它将在代码
中
自动实现枚举值与它们
的
名称
之间
的
关联。有没有办法用逗号分隔来扩展#__
VA_ARGS__
名称
? 干杯! 编辑:变通方案 对于这个问题,似乎没有简单/优雅
的
解决方案。然而,即使是这个实现似乎也必须限制您定义
的
枚举
的
数量(在他
的
例子
中
是9个)。因此,对我来说,一种变通
的
方法是一个明
浏览 69
提问于2021-04-02
得票数 1
1
回答
如何解决“必须至少为
变量
宏
的
‘.’参数指定一个参数”
c++
、
clang
、
c-preprocessor
您可以
在
C++
中
定义一个多样化
的
宏
,如:但是,将FOO作为FOO(1)调用将导致
宏
展开
bar(1,),这显然是一个语法错误因此GCC包括一个GNU分机:这将使给定
的
示例扩展到所需
的
结果bar(1)。虽然__
VA_ARGS__<
浏览 2
提问于2021-06-09
得票数 5
3
回答
MSVC不能正确扩展__
VA_ARGS__
visual-c++
、
c-preprocessor
、
variadic-macros
X = x and VA_ARGS = __
VA_ARGS__
F(1, 2, 3)对于这两个
宏
,预期
的
输出都是X = 1 and VA_ARGS = 2, 3,这就是我使用GCC得到
的
结果,但是,MSVC将其扩展为:X = 1, 2, 3 and VA_ARGS = 也就是说,__
VA_ARGS__
作为单个参数
展开
,而不是分解为多个参数
浏览 0
提问于2011-02-28
得票数 62
回答已采纳
1
回答
如何使用Boost预
处理器
多次打印逗号
c++
、
boost-preprocessor
我需要使用一个可变
宏
来扩展到一个类
的
多个变体。由于它们需要基于
宏
输入有不同
的
名称
,所以我不能简单地使用模板。问题是,我不能
展开
逗号(,)符号,而且我
的
类有接受多个参数
的
函数(为此我需要使用逗号符号)。
浏览 10
提问于2014-07-16
得票数 1
回答已采纳
1
回答
如何在MSVC
中
实现EXCLUDE_FIRST_ARGUMENT
宏
?
c++
、
gcc
、
visual-c++
下面的代码
在
GCC中正常工作,但在MSVC
中
不起作用。示例:将评估
在
GCC(也检查在CLANG)但是当我在这个例子中使用MSVC时,结果是空
的
。当我
在
_EXCLUDE_FIRST_ARG_
中
检查_EXCLUDE_FIRST_ARG_参数
浏览 6
提问于2018-01-04
得票数 0
回答已采纳
1
回答
各种
宏
:粘贴令牌
的
扩展
c
、
gcc
、
macros
、
clang
、
variadic-macros
我
的
宏
定义如下: * @brief Invoke an instance method.#define $(obj, method, ...) \$(array, addObject, obj); $(self, addObject, $(array, objectAtIndex, i)); }上面嵌套
的
<
浏览 0
提问于2014-12-16
得票数 4
回答已采纳
4
回答
在
C++
中使用不同数量
的
参数
的
嵌套
宏
c++
、
c++11
、
macros
、
c-preprocessor
2.对于
C++
预
处理器
实现者来说有什么可能是实现问题,而他们避免了这个特性呢? 3.如何才能使用这样
的
快捷方式?
浏览 4
提问于2017-05-31
得票数 0
回答已采纳
1
回答
使用__
VA_ARGS__
限制扩展参数
的
数量
c
、
c-preprocessor
、
variadic-macros
、
variadic-functions
我根据参数
的
数量重载
宏
,如下面的问题所述:当使用1个参数时,重定向至1个参数重载当使用2个参数时,重定向至2个参数重载使用>2个参数时,重定向至2个参数重载,额外
的
参数作为
变量
参数传递。链接问题中
的
解决方案
的
问题是,第三个参数
浏览 44
提问于2015-09-07
得票数 2
2
回答
用于调用函数
的
宏
c
、
macros
、
arguments
、
c-preprocessor
、
preprocessor
我需要一个
宏
(或函数,但最好是
宏
),它接受函数名和无限数量
的
参数,然后将参数传递给函数。假设这个
宏
是MACROFOO。void) int x = 3;}#define MACROFOO(function, args...) (functio
浏览 3
提问于2017-03-08
得票数 3
回答已采纳
1
回答
对列表进行准备,并在C预
处理器
宏
中
应用另一个
宏
c++
、
c
、
c-preprocessor
是否可以定义将以下列方式
展开
的
预
处理器
宏
。MACRO1(x) (y,z,w)MACRO1
的
扩展是否可以以某种方式使用
宏
调用后
的
列表
的
左括号,并将其替换为MACRO2(x,,以便预
处理器
将结果接受为有效
的
宏
调用__
VA_ARGS__
#define STRIP_PAREN(...)至于我想要这种行为
的
原因,这是为了美学
浏览 3
提问于2014-04-30
得票数 3
回答已采纳
5
回答
我们可以使用递归
宏
吗?
c++
、
c
、
macros
、
c-preprocessor
我想知道我们是否可以
在
C/
C++
中使用递归
宏
?如果是,请提供示例。# define pr(n) ((n==1)?
浏览 3
提问于2012-09-16
得票数 67
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
你用过宏##粘贴函数,然后用函数指针查找执行吗?今天就给你说道说道
C/C+编程笔记:C语言被人遗忘的运算符,了解三点即可掌握!
Linux内核中常用的C语言技巧
Linux 内核中常用的 C 语言技巧
官宣:Visual Studio中预处理器的变革
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券