有没有使用宏定义的另一种方法吗?

时间:2017-04-22 00:39:00

标签: c++ visual-c++

我写了一个像这样的函数

int funA(){
//this define is to do something with a,b....z 
#define _MyMacro_ do{\
a....\
b,a...\
z....\
...\
}while(0); 

int a;
char b;
....
float z;

....
if(condition){
_MyMacro_;
}
else if(condition2){
  a++;//just change value
  ...//do some change to a,b,z

  if(...){
     _MyMacro_;
  }
  else{...}
    }

//do something with a,b,...z

_MyMacro_;

...    

}

我认为这不是使用#define的好方法 如果我使用功能

void subfunc(int &a,char &b,.....,float &z)

也许它更好,但有很多参数

我想知道更好的方法,谢谢

1 个答案:

答案 0 :(得分:1)

使用函数最适合模块化代码,编译器已准备好处理它们,它与参数的数量无关。宏应主要用于配置编译变体。

请注意,您始终可以使用结构分组参数。