我正在尝试定义一个在其中包含以下内容的常量
ch[co].gold < 10000*100
我该怎么做呢,比如
define x = ch[co].gold < 10000*100;
这样每次我写
if (x) {say(cn,"You need 10 000 gold coins");}
或者那是不可能的?
答案 0 :(得分:2)
功能:
int x(int val) {
return (val < 10000 * 100);
}
用法
// ...
if (x(ch[co].gold)) {
printf("You need 10 000 gold coins.\n");
}
// ...
答案 1 :(得分:1)
嗯,这是我的解决方案
struct s {
int gold;
};
const int co = 2;
struct s ch[] = {112,2321,3234};
#define x() ch[co].gold < 10000*100
int main(){
if (x()) {
}
return 0;
}
答案 2 :(得分:0)
这是你期待的吗?
#define x (ch[co].gold < 10000*100)
在您使用它的地方之前添加此行代码,通常它位于#include
的正下方。
通常,我们使用带有更清晰含义的大写字母而不是x
。
答案 3 :(得分:0)
#define
只是预处理器执行的文本替换。
要执行您想要的操作,请使用以下#define
:
#define x ch[co].gold < 10000*100
每次预处理器遇到符号x
时,都会将其替换为ch[co].gold < 10000*100
。
我认为你真正想要的是使它成为pmg所建议的正常功能。这是一个更明智的选择。