如何创建#define值的向量?

时间:2018-12-14 08:54:07

标签: c++ vector undefined

我有一些定义值,例如:

#define DEF_1 0x0010
#define DEF_2 1001
#define DEF_3 3702
#define DEF_4 32772

我想将这些值保留在向量或数组中,但是不幸的是,我不知道将来将如何使用它们(作为哪种类型),因此不确定是否应该将其用作什么类型的向量?如您所见,甚至有一个十六进制。

所以我认为我可以做一个std::vector<*char>。但是将来以后,每次我需要使用它时,都需要将其转换为所需的类型。

有没有更简单的方法?难道没有任何通用类型允许我使用数组成员#defined吗?

需要任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

没有通用类型可以容纳您可以定义的任何内容。让我举一些例子:

#define LESS <

从英语标识符中可以明显看出,这意味着比较功能。并且在预处理器上下文中,这可以工作。但是,从C ++的角度来看,函数名称为operator<,并且您需要考虑运算符重载。

#define FOO {

预处理器可处理原始令牌。裸{

所需的C ++类型尚不清楚

结论必须是选择一种对您有用的类型,然后让编译器检查您定义的宏是否可以解释为该类型的有效表达式。如果没有,编译器会抱怨。