如何在宏中单引号参数? [英] How to single-quote an argument in a macro?
本文介绍了如何在宏中单引号参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个 C 预处理器宏,它将单引号引用该参数。就像常用的 #X
。
我想 Q(A) code>扩展为
'A'
。
我在Linux上使用gcc。 p>
是否有人有想法?
我知道#
双引号。我正在寻找类似的单引号机制。
解决方案
您可以做的最好的是
#define Q(x)((#x)[0])
或
#define SINGLEQUOTED_A'A'
#define SINGLEQUOTED_B' B'
...
#define SINGLEQUOTED_Z'z'
#define Q(x)SINGLEQUOTED _ ## x
这只适用于 a
- z
, A
- Z
, 0
- 9
和 _
(并且对于某些编译器, $
)。
I would like to create a C pre-processor macro that will single-quote the argument. Just like the common used #X
.
I want Q(A)
to be expanded to 'A'
.
I am using gcc on Linux.
Does any one have an idea?
I know #
double-quotes. I am looking for a similar mechanism for single-quoting.
解决方案
The best you can do is
#define Q(x) ((#x)[0])
or
#define SINGLEQUOTED_A 'A'
#define SINGLEQUOTED_B 'B'
...
#define SINGLEQUOTED_z 'z'
#define Q(x) SINGLEQUOTED_##x
This only works for a
-z
, A
-Z
, 0
-9
and _
(and $
for some compilers).
这篇关于如何在宏中单引号参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文