在 C 宏中强制使用空格?
我有以下宏来定义一个遵循特殊命名方案的新函数:
#define CREATE_HOOK_STUB( func ) void ##func_STUB() { /* some code*/ }
但是,预处理器总是连接 void
和 ##func_STUB
但我显然希望它保留该位置处的空白。
我知道我可以在 ##func_STUB
前面添加一些字符串,但这不是我想要的。 我该如何解决这个问题?
I've got the following Macro to define a new function following a special naming scheme:
#define CREATE_HOOK_STUB( func ) void ##func_STUB() { /* some code*/ }
However, the preprocessor always concatenates void
and ##func_STUB
but I obviously want it to preserve the whitespace at that position.
I know that I could just prepend some string to ##func_STUB
, but this is not what I want.
How would I solve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为你真正想要的更接近:
但你还应该看看这个链接的SO答案其中有一些关于令牌粘贴操作符行为的附加细节:
I think what you really want is closer to:
But you should also look at this linked SO answer which has some additional details on the behavior of the token pasting operator: