元は公式BBSに書いたモジュールのリファクタで
指定のbitが1か0か調べるものです
変なerrorになる
#module #deffunc bit_ls_init ldim Bs,9 Bs(1)=*bit_1 Bs(2)=*bit_2 Bs(3)=*bit_3 Bs(4)=*bit_4 Bs(5)=*bit_5 Bs(6)=*bit_6 Bs(7)=*bit_7 Bs(8)=*bit_8 return #defcfunc is_bit int n,int m ;if (n < 1)or(n >8){ ;dialog "error",1 ;return-1 ;} goto Bs(n) dialog "error",1 return-1 *bit_1:if m&1:return 1:return 0 *bit_2:if m&2:return 1:return 0 *bit_3:if m&4:return 1:return 0 *bit_4:if m&8:return 1:return 0 *bit_5:if m&$10:return 1:return 0 *bit_6:if m&$20:return 1:return 0 *bit_7:if m&$40:return 1:return 0 *bit_8:if m&$80:return 1:return 0 #global bit_ls_init mes is_bit(2,3) mes is_bit(3,3) mes ; mes is_bit(0,3) mes is_bit(1,3) mes is_bit(8,3) ; mes is_bit(9,3)
こう書けば回避できる
#module #deffunc bit_ls_init ldim Bs,9 Bs(1)=*bit_1 Bs(2)=*bit_2 Bs(3)=*bit_3 Bs(4)=*bit_4 Bs(5)=*bit_5 Bs(6)=*bit_6 Bs(7)=*bit_7 Bs(8)=*bit_8 return #defcfunc is_bit int n,int m ;if (n < 1)or(n >8){ ;dialog "error",1 ;return-1 ;} goto Bs(n) dialog "error",1 return-1 *bit_1:if m&1{return 1}return 0 *bit_2:if m&2{return 1}return 0 *bit_3:if m&4{return 1}return 0 *bit_4:if m&8{return 1}return 0 *bit_5:if m&$10{return 1}return 0 *bit_6:if m&$20{return 1}return 0 *bit_7:if m&$40{return 1}return 0 *bit_8:if m&$80{return 1}return 0 #global bit_ls_init mes is_bit(2,3) mes is_bit(3,3) mes ; mes is_bit(0,3) mes is_bit(1,3) mes is_bit(8,3) ; mes is_bit(9,3)
else:if
がたぶん上手く動くってことなんですけど
どうだと上手く動いて
どうだと上手く動かないかの
調査も誰かしないかなー
そういうのがないと安心して使えないです