如何只用一个#define定义两个或多个值?

时间:2013-04-11 06:57:54

标签: c++ c c-preprocessor

例如:

    #define{
        VAR1 53
        VAR2 71
        etc.
    }

有可能吗?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:2)

#define - 子句是预处理器的命令,在将源代码传递给编译器之前,它会对源代码进行文本替换。 #define的语法是

#define VALUE TEXT_TO_REPLACE_VALUE

就是这样。可能有一些方法可以有条件地创建表达式,但不能在单个语句中。

答案 1 :(得分:2)

例如,您可以使用enum

enum Gender
{
    GENDER_UNKNOWN = 0,
    GENDER_MALE    = 1,
    GENDER_FEMALE  = 2
};

然后,您可以在C ++中声明类型Gender或在C中声明enum Gender的变量,它应该只接受其中一个元素作为值,否则编译器将抛出警告。

但是enum不接受#define所做的任何声明,你基本上只能用整数。

答案 2 :(得分:0)

你可以为VAR创建一个数组,并声明你想要的有价值的数据。 然后你可以输入这样的值,一个例子在下面

示例:我想将5个值存储到VAR

int VAR[5];
for(i=0; i<5; i++){
    scanf("%d", &VAR[i]);
    }