如何在宏中单引号参数? [英] How to single-quote an argument in a macro?

查看:222
本文介绍了如何在宏中单引号参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆