人のコードを見ていて気になった点があったので質問です。
真偽値の判定をするためのint型の変数に、1と-1を足して0,1を持たせるのと、0,1を代入するのと裏側の処理は変わってきますか?
c
1int check = 0; 2int d; 3 4d = 1; 5check += d; 6 7if(check){ 8 printf("true"); 9} 10 11d = -1; 12check += d; 13 14if(check){ 15 printf("true"); 16}
c
1int check = 0; 2int d; 3 4d = 1; 5check = d; 6 7if(check){ 8 printf("true"); 9} 10 11d = 0; 12check = d; 13 14if(check){ 15 printf("true"); 16}
代入の方が処理が早いとかメモリ消費量が低いとか違いはありますでしょうか。
アセンブリ的には一緒だったりしますか?
コードとしては、0,1以外の値が格納されないように代入の方が適切かと思います。
ですが、読んでいたコードには1を足す、もしくは-1を引くということで変数を処理していたので、何か理由があるのか疑問に思っての質問です。
こういう裏側の処理について調べようと思ったときに、当たるべきキーワードや調べる方法などもありましたら合わせて教えていただけましたら幸いです。
回答5件
あなたの回答
tips
プレビュー