ぼく用あれこれまとめ

ちょっとしたテクニック

最終更新:

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をつけておくのが無難かも
記事メニュー
目安箱バナー