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我只是不知道。