3Dプリント

誰も教えてくれない「組込みC言語」 1

■組込み現場では int型は使わない。

組込み系のC言語の本にも
unsigned int i;
int j;
とかサンプルプログラムに書かれているが
これは間違いではないが実際に組込みプログラムに携わっているプログラマーは使わない(はず)

なぜならば int型は マイクロプロセッサに依存する為
16ビットだったり、32ビットだったりするからです。

他のプロセッサに移植する際に見つけにくいバグの1つとなってしまいます。

よって以下のプログラムは

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void main(void){
	unsigned int	i;
 
	while (1U)
	{
		P3.0 = 0;
		for(i=0;i<50000;i++){};
		P3.0 = 1;
		for(i=0;i<50000;i++){};
	}
}
 
void main(void){
	unsigned short	i;
 
	while (1U)
	{
		P3.0 = 0;
		for(i=0;i<50000;i++){};
		P3.0 = 1;
		for(i=0;i<50000;i++){};
	}
}

と書くべきだと思います。

サンプルプルプログラムに int型の宣言がある組込み向けc言語の解説書は自分的にはアウトです。
ただマイコンチップを特定の機種に絞っている本は別です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です