2017-04-22 5 views
-3

私はそれが私がマクロ定義を使用せずにこれを行う別の方法はありますか?

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

機能を使用する場合、多分それは良いでしょうが、のparamsをたくさん持っているの#define を使用するための良い方法ではないと思う。この

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_; 

...  

} 

のような関数を記述している

これを行うには、より良い方法を知りたい、ありがとうございました

+0

これはたくさんのことです。あなたがしようとしていることを見るのは難しいです。 'a'から' z'をキャプチャするラムダが役に立ちます。 – aschepler

答えて

1

モジュラーキットには機能を使用するのが最も適していますgあなたのコードとコンパイラはそれらを扱う準備が整っていますが、パラメータの量は関係ありません。マクロは、主にコンパイルバリアントの設定に使用する必要があります。

常に構造体でパラメータをグループ化できることに注意してください。

+0

変数を体系化してプログラムの目標に合った方法で構造体にグループ化することは、道のりです。 –

関連する問題