1

(下手な英語でごめんなさい。)

次のようなマクロが必要MASKです。

  • MASK(a)に展開します(1<<(a))
  • MASK(a,b)に展開します(1<<(a) | 1<<(b))
  • MASK(a,b,c)に展開します(1<<(a) | 1<<(b) | 1<<(c))

Cプリプロセッサでそのようなマクロを定義することは可能ですか? 多分いくつかのGCC拡張機能を助けることができますか? または、 などに展開されるMASK(x)ような単一の引数で実装することは可能ですか?MASK((a,b))(1<<(a) | 1<<(b))

追加した。関数として実装することに興味はありませんMASK

4

1 に答える 1