開発Tips/コーディングテクニック
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*C/C++ [#b6a5e9ae]
**for文のループ回数 [#o2b06a03]
-悪い例
#code(c){{
for(int i=0; i<obj.GetLength(); i++){
// 処理
}
}}
obj.GetLength()が毎回評価されてしまうため、obj.GetLength(...
-良い例
#code(c){{
for(int i=0, length=obj.GetLength(); i<length; i++){
// 処理
}
}}
変数 length のスコープもforブロック内のみとなることがポイ...
**2次元配列の動的メモリ確保 [#h50a3540]
5*10のint型配列変数の確保の例
#code(c){{
int (*p)[10]; // 1つのポインタ変数であることに注意...
// 「4(int型)*10」Byteの大きさのデー...
// *p[10]だと「4(int型)」Byteの大きさ...
// malloc(), free() の場合
p = (int(*)[10])malloc(5 * 10 * sizeof(int)); // 確保
free(p); // 解放
// new, delete の場合
p = new int[5][10]; // 確保
delete[] p; // 解放
}}
※多次元配列も同様のイメージ。ただし、やはり一番左側の要素...
**小数点以下の四捨五入 [#ja3e963b]
#code(c){{
#define ROUND(val) ((int)((val < 0.0) ? (val - 0.5) : ...
}}
**配列の要素数 [#a2258799]
#code(c){{
#define ARRAY_SIZE(ary) (sizeof(ary) / sizeof(ary[0]))
}}
※要素数が明示されている配列変数にしか使えない。ポインタ表...
**変数の内容の標準出力(DEBUG用) [#vce543f2]
#code(c){{
#define PRINT_VAR(fmt, var) printf(#var " = " fmt "\n",...
}}
**値を範囲内に丸める [#c2e2703b]
#code(c){{
// x は 0~1000
x = min(max(x, 0), 1000);
}}
終了行:
#contents
*C/C++ [#b6a5e9ae]
**for文のループ回数 [#o2b06a03]
-悪い例
#code(c){{
for(int i=0; i<obj.GetLength(); i++){
// 処理
}
}}
obj.GetLength()が毎回評価されてしまうため、obj.GetLength(...
-良い例
#code(c){{
for(int i=0, length=obj.GetLength(); i<length; i++){
// 処理
}
}}
変数 length のスコープもforブロック内のみとなることがポイ...
**2次元配列の動的メモリ確保 [#h50a3540]
5*10のint型配列変数の確保の例
#code(c){{
int (*p)[10]; // 1つのポインタ変数であることに注意...
// 「4(int型)*10」Byteの大きさのデー...
// *p[10]だと「4(int型)」Byteの大きさ...
// malloc(), free() の場合
p = (int(*)[10])malloc(5 * 10 * sizeof(int)); // 確保
free(p); // 解放
// new, delete の場合
p = new int[5][10]; // 確保
delete[] p; // 解放
}}
※多次元配列も同様のイメージ。ただし、やはり一番左側の要素...
**小数点以下の四捨五入 [#ja3e963b]
#code(c){{
#define ROUND(val) ((int)((val < 0.0) ? (val - 0.5) : ...
}}
**配列の要素数 [#a2258799]
#code(c){{
#define ARRAY_SIZE(ary) (sizeof(ary) / sizeof(ary[0]))
}}
※要素数が明示されている配列変数にしか使えない。ポインタ表...
**変数の内容の標準出力(DEBUG用) [#vce543f2]
#code(c){{
#define PRINT_VAR(fmt, var) printf(#var " = " fmt "\n",...
}}
**値を範囲内に丸める [#c2e2703b]
#code(c){{
// x は 0~1000
x = min(max(x, 0), 1000);
}}
ページ名: