数々のレスありがとうございます。 >わたしも switch を使うのが綺麗だと思います。 やはりスイッチ文ということになるでしょうかねえ。 やはりそれが見やすくすっきりしますね。 int get_pin(void) { // ピンの状態を読む } switch (get_pin()) { case } 引っかかっていたのは、 ピン2本同時ON などのレスでもありましたが、 別々のピン群(レジスタ) から 入力ON の信号がくる場合、 pin; と 複数の入力ONの信号 を単純には一つの変数には出来ず、 pin の一つの変数にうまくまとめる必要もあります。 テーブルを使ったりとかやってみるのですがいまいちさっぱりしません。 例にあるように、やはりget_pin() 関数でまとめるのがいいですね。 ところが 関数でも考えていたのですが int get_pin() { if(入力1){return(1);} → case1 で入力1の処理 else if(入力2){return(2);}→ case2 で入力2の処理 else if(入力1&&入力2){return(3);} → case3 で入力3の処理 ・ ・ } のようになり、なら、直接ここに(ifに)入力1の処理書いてもあんまり変わらないんじゃあ?? と考えたり・・・ やっぱりこのswitch (pin) pin変数のビット0〜に 入力1〜 のビット情報を積み上げて、それを switch (pin) にすると(バイトで見る)、2pin以上同時入力にも対応できて、このようなタイプの方法がいいのかもしれません。 まとまりなくいっぱい書きましたが伝わるでしょうか なんとなくまとまりましたので、 その方法を関数なり、テーブルなりの方法で処理する方法で考えます。