次のようにマクロ展開を設定したとします...
#define WARN_START @"DANGER"
#define WARN_RESET @"THE COAST IS CLEAR"
#define WARN(x) WARN_START x WARN_RESET
INPUT WARN(@"*** Your boss is coming. ***")
OUTPUTDANGER *** Your boss is coming. *** THE COAST IS CLEAR
✅</p>
関数があるとしましょう…</p>
NSString * WhosComing(void){ return @"*** Some fool. ***"; }
そのような関数の結果を、最初に変数に代入せずにマクロに渡すにはどうすればよいですか。
WARN(WhosComing())
ERRORexpected ')'
私は余分な括弧をいじりました、つまり
#define WARN((x))
…。または...WARN_START (x) WARN_RESET
しかし...</p>
ERRORinvalid operands to binary expression
など
同様に、cuntion をポインターまたは何かとして渡そうとします。つまりWARN(&WhosComing())
、無駄です。これは可能/簡単だと確信しています...しかし、私はCSの学位を持っていないので、方法を学んだことはありません..誰かにとって簡単な答えはありますか?