e158.c

算術演算^の周辺括弧必要
#ident	"$Id: e158.c.html 187 2006-05-17 05:23:14Z ono.mki $"
/*###15 [cc] 警告: BBB:e158: ビット演算^の周りにカッコは必要ないですか%%%*/
/* suggest parentheses around arithmetic in operand of ^ */

int     main()
{
        int     i = 2 ;
        int     j = 1 ;
        int     k = 1 ;

修正前 printf("%d¥n", i ^ j & k ) ;
修正例1 printf("%d¥n",(i ^ j) & k ) ;
修正例2 printf("%d¥n", i ^ (j & k)) ;
return(0) ; }
解説 ビット演算と算術演算のどちらが先に実行 されるかわかりますか? 結合力の問題です。 C-FAQ 3.4J C-FAQ 3.4E を参照して下さい。