数値の概要
ここでは数字を使用しているときに、より少ない間違いを犯すことができますいくつかの提案です。
- 数値謎を使用しないでください
- より信頼性になる変更。
- 変更が容易になります。
- あなたのコードをより読みやすいです。
- 必要であれば、0と1をハードコーディングされました。
- ゼロによる除算防止;
- これは、変換のタイプことは明らかです。
- 型混合比較避けます。
- コンパイラの警告に注意してください。
整数
整数を使用する場合は、以下の注意事項に注意を払います。
- 整数の除算をチェックしてください。
- 整数オーバーフローをチェックしてください。
- 中間検査結果がオーバーフローします。
フロート
使用浮動小数点の原則に従うべきです:
- 位相差膨大な数の大小減算を避けます。
- 同じ量を避けるために決定。
- 問題との契約を丸め:
- より高精度な変数型に変更します。
- 他の2進化10進変数で、
- 浮動小数点変数は整数変数となります。
- 特定のデータ型の言語とライブラリのサポートを確認してください。
文字と文字列
ヒント文字列:
- 神秘的で神秘的な文字列を使用しないでください。
- 避けoff-by-oneエラー。
- あなたの言語と開発環境は、Unicodeをサポートする方法であることを理解。
- 初期のアプリケーションライフサイクルにおける意思決定の国際/ローカライズ戦略。
- あなたはテキストだけの一つの言語をサポートして知っている場合、ISO 8859文字セットを使用することを検討してください。
- あなたが複数の言語をサポートする必要がある場合は、Unicodeを使用します。
- 同じ文字列型変換戦略のいくつかを使用します。
C言語の文字列
一般的な間違いを避けるために、Cの文字列を直接扱います。
- 文字列と文字列配列のポインタの相違があります:
- 文字列と等号を含む任意の式に警告します。
- 変数の文字列配列や文字列のポインタを区別するための命名規則によって。
- 文の長さは、Cスタイルの文字列定数+ 1です。
- セットアップサブ文字列を回避するために、ヌル文字列を持つ端末ではありません。
- ポインタの置換されたCの文字配列。
- 無限の文字列を避けるためにはstrncpyののstrcpy()()で置換されています。
ブール変数
- ブール変数を使用するための手順の文書化。
- 複合体を簡素化するブール変数が決定されます。
- 必要であれば、あなた自身のブール型を作成します。
列挙型
- 列挙型は読みやすさを向上させるために、
- 列挙型は、信頼性を向上させるために、
- 列挙型を簡素化するように変更。
- 列挙型ブール変数に代わるものとして、
- 不正な値をチェックします。
- 境界に循環させるため、列挙の最初と最後の項目を定義します。
- 不正な値のために予約列挙型の最初の要素。
- 明確に定義されたプロジェクトコードは、第一および標準と一貫して使用の規則を使用して最後の要素が書き込まれます。
- 明確な割り当てをもたらした要素を列挙するの過ちに対するガード。
定数名前付き
変数のような名前付き定数は、割り当て一度変更することはできません。
- 配列の宣言に名前付き定数を使用します。
- それが安全であっても、テキストの量を使用することは避けてください。
- 適切な範囲または可変アナログクラスという名前の定数を持ちます。
- 名前付き定数の制服を使用。
配列
配列は、構造化データの最も単純で最も一般的なタイプです。
- すべての配列インデックスが配列の境界を超えていないことを確認します。
- 処理順番としてアレイ、またはアレイ構造を交換する容器を考えます。
- 配列の境界点を確認してください。
- アレイは多次元である場合、確認順序の使用の主題は正しいです。
- 添字クロストークを注意してください。
- Cに組み込まARRY_LENGTH()マクロアレイを使用します。
チェックリスト:基本データ型
数値の概要
- []謎の数値コードは、それを使用しないように?
- []コードは、ゼロエラーそれによって除算考えられますか?
- []それは明らかに出演?
- 変数の二つの異なるタイプが単一のステートメントに存在する場合は、[]、この文はあなたがそれを期待して好きになるでしょうか?
- []比較的混合型を回避するためのコードはありますか?
- []警告メッセージを持つプログラムは、時にコンパイル?
整数
- 予想通り[]整数除算式を使用することができますか?
- []整数式は、整数オーバーフローの問題を回避するには?
フロート
- []コードを追加し、それを行うための減算との大きさの差の注文の膨大な数を避けるために?
- []コードシステムは、丸め誤差が起こるのを防止するには?
- それの浮動小数点比較の同じ量を避けるために[]コード?
文字と文字列
- それは神秘的で神秘的な文字列を使用しないようにする[]コード?
- あなたは文字列を使用する場合、[] off-by-oneエラーを回避するために?
- []の文字列と文字列へのポインタの配列のためのCコードは、まだ差を治療しますか?
- [] CコードはまだCONSTANT + 1つの規則長さとして宣言された文字列を次の?
- まだ文字列のポインタを交換するための適切な時に使用するための[] Cコード?
- []コードCは、それなしで、文字列の末尾を防ぐために、NULL文字列に初期化?
- 代わりのstrcpyのはstrncpy()()それに[] Cコード?strncat()とstrncmpは()ですか?
ブール変数
- まだ条件判定を説明するための追加のブール変数と[]のプログラム?
- まだ条件簡素化するための追加のブール変数と[]のプログラム?
列挙型
- []手続きは、タイプという名前の定数を列挙ではなく、読みやすさ、信頼性を向上し、それを修正可能ですか?
- []の使用変数は、プログラムのちょうど真と偽の表現は、列挙型ブール変数が行う交換することができないときは?
- []はまだ無効な値を検出するための試験の種類を列挙?
- []列挙型の最初のエントリは、まだ「違法」のために予約しますか?
定数名前付き
- 【】プログラムは、一定の名前の代わりに神秘的な数値データと、それはループリミットを表す宣言するための道具?
- []名前付き定数の一貫した使用はいますか? - いくつかの位置で指定された定数を使用して別の場所にテキストの量を使用していませんか?
配列
- []配列の添字は、すべての配列の範囲を超えているそうではありませんか?
- []配列の参照なしオフずつエラーそれ?
- []すべての多次元配列を使用するための添字は正しいですか?
- []ネストされたループでは、配列の添字の正しい変数がまだクロストークをマークし、次のサイクルを避けるために?
作成タイプ
- []各プログラムのデータは異なるタイプを使用して変えることができますか?
- []タイプ名は実世界のエンティティのタイプは、それの志向というよりも指向プログラミング言語の種類を表しているのですか?
- []十分に強いわかりやすい名前を入力し、データがそれを宣言説明するのに役立つことができますか?
- []あなたは、事前に定義されたタイプを再定義避けますか?
- []単にタイプを再定義するために比較すると、あなたは新しいクラスが行うの作成とみなさ?
点数
- 心の中でそれぞれのタイプに適用される独立の原則を維持するために多くのことを意味するであろうデータの特定のタイプを使用します。
- あなたの言語のサポートがあれば、カスタムタイプを作成し、あなたのプログラムが変更しやすく、より説明的になります。
- より多くの新しいクラスを作成する必要があるかどうかを検討するときには、typedefでまたはその同等物との単純型を作成する場合。