将字符粘贴为标记
我想知道是否可以在运行时将字符粘贴为 C 中的标记。类似的东西
a = OPERATION(3, 4, '+')
将被处理为,
a = 3 + 4
有办法做到这一点吗?
编辑:我想添加更多信息。显然这不能用预处理器来完成。我想知道是否有一个简短的方法可以做,
int i;
char sign[] = "+-*/";
for (i = 0; i < 4; i++)
printf("%d\n", OPERATION(3, 5, sign[i]));
我知道我们可以创建一个函数,
int OPERATION(int a, int b, char c);
但这不是我要问的。
I'm wondering if it's possible to paste a character as a token in C at runtime. Something like,
a = OPERATION(3, 4, '+')
will be processed to,
a = 3 + 4
Is there a way to do this?
Edit: I wanted to add some more information. Obviously this can't be done with the preprocessor. I'm wondering if there's a short way to do,
int i;
char sign[] = "+-*/";
for (i = 0; i < 4; i++)
printf("%d\n", OPERATION(3, 5, sign[i]));
I know we can create a function as,
int OPERATION(int a, int b, char c);
But this is not what I'm asking.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
怎么样:
但是,正如下面 delnan 所指出的,您必须将您的调用修改为:
How about this:
However, as delnan notes below, you would have to modify your call to:
也许你想要这个:
Maybe you want this:
OPERATION(3,5,'+')
返回8
OPERATION(9,2,'/')
返回4
OPERATION(9,3,'*')
返回27
OPERATION(3,5,'-')
返回-2
OPERATION(3,5,'M')
返回0
OPERATION(3,5,'+')
returns8
OPERATION(9,2,'/')
returns4
OPERATION(9,3,'*')
returns27
OPERATION(3,5,'-')
returns-2
OPERATION(3,5,'M')
returns0