Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在c++;?_C++_Macros_C Preprocessor - Fatal编程技术网

C++ 如何在c++;?

C++ 如何在c++;?,c++,macros,c-preprocessor,C++,Macros,C Preprocessor,我在大学里有一个项目要做,这个项目要求我们使用带有预处理器的宏创建一个新的伪语言 但是有一个命令,我就是找不到一个方法使它工作 命令是这样的, DAMAGE DEFENDER 12 我尝试过多种方法,正如我在标题中提到的,如果可以以某种方式交换宏,它可以解决我的问题 DEFENDER=玩家[1回合],这是一个玩家类的对象,回合从0到1 我尝试使用DAMAGE实现一个函数,但这是不可能的,因为DEFENDER和数字中没有逗号,加上我无法关闭12后面的括号 我尝试了操作符重载,似乎只有在交换是可能

我在大学里有一个项目要做,这个项目要求我们使用带有预处理器的宏创建一个新的伪语言

但是有一个命令,我就是找不到一个方法使它工作

命令是这样的,

DAMAGE DEFENDER 12
我尝试过多种方法,正如我在标题中提到的,如果可以以某种方式交换宏,它可以解决我的问题

DEFENDER=玩家[1回合],这是一个玩家类的对象,回合从0到1

我尝试使用DAMAGE实现一个函数,但这是不可能的,因为DEFENDER和数字中没有逗号,加上我无法关闭12后面的括号

我尝试了操作符重载,似乎只有在交换是可能的情况下,它才能工作。 我正在考虑将损坏宏设为负(-)并执行类似操作

Player[1-turn] - 12
也许还有别的办法,比如在条件下使用宏

例如,
#定义防守球员[1回合]状态_宏

#define CONDITION_MACRO -/+ (for damage or heal)

但损害首先作为一个关键词出现。此外,DEFENDER宏也用于其他宏,如GET_HP(DEFENDER),因此保持这种状态很有用,但如果您有任何想法可以解决这两种情况下的问题,我将非常感激。

不清楚您在问什么,即“DEFENDER损坏”是什么?为了得到更好的响应,你应该发布有问题的代码。你需要的是更多的宏函数,比如一个叫做
ATTACK(\u VA\u ARGS)
的函数,它可以按照你想要的顺序调用DAMAGE和DEFENDER。如果要提供变量参数,则需要宏函数重载。这并不是
#define
所擅长的。这里缺少大量语法<代码>损坏(防御者,12))将更容易实现。@ TADMAN是这样,不幸的是,我不能这样做。我不知道你怎么做,而不需要一点点C++语法来编译它。代码>伤害防御者12将是一个进步。缺少
#定义12