#define的新变量

时间:2012-05-30 19:06:01

标签: c++ variables c-preprocessor

我想用#declare“自动”创建变量。所以,我不想多次输入新变量的类定义(实际上我是在声明多维向量,而不是简单的整数......)

我有这段代码:

#define inti(aa)(int (aa)=3)

...

inti(a);

但是编译器说:

  

“错误:'a'未在此范围内声明”

有可能在C ++中解决这个问题吗?请帮忙!

2 个答案:

答案 0 :(得分:8)

<德尔>使用:

 #define inti(aa) int aa=3

那是因为

(int aa=3);

是非法的,甚至更多的是你在那里。

实际上,抓一点。 不要使用宏。只是声明你的变量是老式的方式。

  

实际上我正在声明多维向量

+1表示您的实际问题。这就是typedef的用途。

typedef std::vector<std::vector<int> > MDVector;
MDVector multiDimensionalVector;

答案 1 :(得分:2)

您可以使用typedef代替#define,如下所示:

typedef complexClassName<PossiblyWithManyTemplateParameters> Name
Name var1;
Name var2;
Name var3;

如果您不想多次输入长名称。