掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
switch文中のマクロ (ID:59046)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
すみません、連休前で仕事に忙殺されてまして返答が遅れました。 > #define MACRO(arg1,arg2) if (1) { なんやかんや } else do {} while(0) なるほど!これでいけますね。有難うございます。 >ナカミを知らずに使うのがマクロなのに、ナカミを知らんと使えないわけやから。 今まであまり深く考えていなかったのですが、ご指摘の通りあまりよくない書き方だと気づきました。なるべく使わない方向で修正してみます。 >途中でbreakするなんざマクロにしかできないオイシサであるのは事実ナリ。 私の場合大量のcaseがあるswitch文で、最初に共通の例外処理をして、当てはまったらbreakするという時に使ってます(ただし例外処理が無いcaseもある)。こういう場合で例外処理に関数内の変数を大量に使っている場合に重宝してます(マクロの代わりに関数にすると、変数を渡すのが面倒なので)。 どちらにせよ、あまり良くない書き方ですね。 #define MACRO()\ if( a>1 && b>2 && c>3 && … ){\ break;\ } foo{ int a,b,c,…; switch(hoge) { case 0: MACRO(); 処理0; break; case 1: //無し 処理1; break; case 2: MACRO(); 処理2; break; case 3: ・・・ } }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.