Tuesday, January 12, 2010

組み込み現場のCプログラム 基礎からわかる 徹底入門 メモ

品質
1.機能性
2.効率性
3.信頼性
4.保守性・移植性

良いコード
1.わかりやすい論理構造
2.わかりやすい論理式
3.表現の一貫性
4.一貫したコーディングスタイルとコーディング規約
5.シンプルなプログラム
良いコードーー信頼性についての例
1.ごみによる誤動作を防ぐ
i.領域の初期化
ii.配列での範囲外添え字使用によるデータ領域の破壊
#define ARRAY_MAX (1024)
short int i, iarray[ARRAY_MAX];
for (i = 0; i < (sizeof(iarray)/sizeof(iarray[0])); i++){
iarray[i]= 0;
}

iii.長すぎる文字列の文字列変数代入によるデータ領域の破壊
#define STR_SIZE (8)
#define EOS ('\0')
char cbuff[STR_SIZE];
strncpy(cbuff,"abcdefghij",STR_SIZE - 1);
cbuff[STR_SIZE -1] = EOS;

2i.データ精度の不足による不具合を防ぐ
3i.資源の食いつぶしを防ぐ --メモリリーク
malloc -- free
4i.資源の食いつぶしを防ぐ --無限ループ
5i.領域のオーバーフローをさせない
バッファオーバーフロー
スタックオーバーフロー
6i.例外に対応する
良いコードーー効率性についての例
1.CPUクロックを無駄に使わない。
2. CPU実行テスト制約を意識する
除算命令 分岐命令 メモリ操作命令
3.限りあるメモリ資源を上手に活用する
良いコードーー保守性・移植性についての例
読みやすさ

不具合は、以下の要領で記録します。

誰が
いつ
どこで
何に対して
どのような手順によって
どのような内容のものを発見したが

修正についても、以下の点を記録し
誰か
いつ
何にに対して
どのような修正を加えたのか

Monday, January 11, 2010

日本の県

北海道
東北(6)
青森県 岩手県 秋田県 宮城県 山形県 福島県
関東(7)
茨城県 栃木県 群馬県 千葉県 埼玉県 東京都 神奈川県
中部(9)
新潟県 長野県 山梨県 静岡県 富山県 石川県 福井県 岐阜県 愛知県
近畿(7)
三重県 滋賀県 奈良県 和歌山県 京都府 大阪府 兵庫県
中国(5)
鳥取県 島根県 岡山県 広島県 山口県
四国(4)
香川県 愛媛県 徳島県 高知県
九州(6)
福岡県 佐賀県 長崎県 熊本県 宮崎県 鹿児島県

沖縄県