ぼく用あれこれまとめ
ちょっとしたテクニック
最終更新:
bokuyo
-
view
ちょっとしたテクニック
数字のスキップの仕方
static int const num = 10; char _Array[num]; int activeElem = 0; //Array[activeElem]のようにして使う. activeElem = (activeElem + 1) % num; //←ここの書き方がうまいやり方
-
0~9の数を取るactiveElemのようなものがあったとき
- 0から1, 1から2のような数字の遷移は簡単だけど、9から0に遷移するときの書き方は意外とむつかしい。
- そんなときの汎用的な書き方。これなら全体の要素数が変わっても対処できそう。
if文の代入文と比較演算子を間違えない方法
int x = 32; if(x == 32) //比較 if(x = 32) //代入
-
最近のコンパイラだと、代入文にたいして「間違いでは?」と返してくる.
warning C4706: 条件式の比較値は、代入の結果になっています。
-
そこでこんなミスを行わないように次にように書く
if(32 == x)
-
数値を左辺に置くことによって
if(32 = x) //コンパイルエラー
-
左辺に代入することはできないからである
error C2106: '=' : 左のオペランドが、左辺値になっていません。
数値だけでなく変数同士の比較の場合
int un = 75; int ko = 75; if(ko = un) //これはコンパイル通る
-
この場合, もし比較値が定数であるならば、 constをつけるといい
int un = 75; int const ko = 75; if(ko = un) //これは正しくない error C2106
- なので定数に関しては、constを付けた方がよい.
- 参照やポインタを返すようなGetメソッドに関しても、このように代入されないようconstをつけておくのが無難かも