用常数定义方程

时间:2016-05-24 07:56:50

标签: c

我正在尝试定义一个在其中包含以下内容的常量

ch[co].gold < 10000*100

我该怎么做呢,比如

define x = ch[co].gold < 10000*100;

这样每次我写

if (x) {say(cn,"You need 10 000 gold coins");}

或者那是不可能的?

4 个答案:

答案 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所建议的正常功能。这是一个更明智的选择。