いずれにしても、マクロでやるのはおすすめできないパターンには違いない。
関数でやってもインライン化されたら定数畳み込みとのコンボで実行コードはだいたい同じような感じになるだろうし。