- Gotoや再帰など複雑なフローは避ける
- 暴走を阻止するため、全てのループに回数上限を設定する
- ヒープ領域のメモリを割り当てない
これは、使用済みメモリがうまく開放されずにメモリリークを引き起こす可能性があるためです。 - 関数を1枚のページに表せるほど小さくまとめる
- 関数1つにつき最低2つのアサーションを付ける
想定外の入力を拒否することでエラーを引き起こす可能性を下げることができます。 - スコープをできる限り小さくまとめる
- 戻り値がvoid以外の場合はチェックを付け、また戻り値に意味がない時はvoidを返すようにする
- プリプロセッサの使用は控えめにする
プリプロセッサの使用は、言ってみれば1回で済む翻訳を2回行うようなもの。プリプロセッサの詳細な挙動を把握していないと意図せぬバグを引き起こす危険があります。 - ポインタの使用は単一の逆参照までにし、関数ポインタは使用しない
- コンパイルは可能な限り警告を出す設定で行い、リリースの時までに修正する
全体として、「可読性」が非常に重要視されているようです。
引用元:https://gigazine.net/news/20180430-nasa-developing-code-rules/